Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

XPATH возвращает список пустых элементов

xpath
locators
.net
selenium
webdriver
Теги: #<Tag:0x00007f7b65186310> #<Tag:0x00007f7b651861d0> #<Tag:0x00007f7b65186090> #<Tag:0x00007f7b65185f50> #<Tag:0x00007f7b65185e10>

(Вова Черепок) #1

Использую Selenium, C# и XPATH, нужно вытащить с сайта https://www.caesarscasino.com/en/all-games список игр.
Вот код html:

<div class="details">
    <div class="title">
          <p> Buffalo </p>
    </div>
</div>

Вытягиваю список вебэлементов:

var gamesNames = driver.FindElements(By.XPath("//div[@class='title']//p"));

В список попадает 30 обьектов, но без названий, поля Text пустые.
Данный XPATH работает в Firebug, находит элементы, но в программе показывает только пустые элементы.


(Ярослав Бойко) #2

на пайтоне я б сделал так

gamesNames = driver.find_element_by_xpath("//div[@class='title']//p").text

(Ярослав Бойко) #3

или можна на python сделать

gamesNames = driver.find_element_by_xpath("//div[@class='title']//p").get_attribute("value")

(Dzmitry Ihnatsyeu) #4

когда вы получаете эти элементы, имена еще не подгружаются в DOM. Дождитесь пока элементы станут видимыми


(Вова Черепок) #5

Помогло!

var gamesNames = driver.FindElements(By.XPath("//div[@class=‘title’]//p"));
Thread.Sleep(3000);

Спасибо


(Вова Черепок) #6

Один раз заработало, вернуло все title, потом опять перестало подтягивать. Я ничего не менял при этом, просто запустил еще раз. Пробовал даже ставить Thread.Sleep(9000);


#7

А почему пауза после нахождения элементов? Какой в этом смысл


(Вова Черепок) #8

перед поиском когда ставлю, та же ситуация, не находит


(Pavel Ponomaryov) #9

читайте документацию expected conditions. thread.sleep - это жуткий антипаттерн, про который уже миллион раз написано.


(Вова Черепок) #10

Поля с названием были hidden. Решил вопрос добавлением JS скрипта:

driver.ExecuteScript(“return arguments[0].innerHTML”, game.FindElement(By.CssSelector(“div.title p”)));


(Pavel Ponomaryov) #11

Почему они то hidden, то нет?