Найти и щелкнуть элемент на основе @onclick с Selenium - PullRequest
0 голосов
/ 05 сентября 2018

Я пытаюсь найти элемент, использующий Selenium в Python, который имеет HTML, как это:

<td class="td1" onclick="window.location.href = 'work_area.php?SID';">Work area</td>

Содержится в простом теге <tr></tr>.

Я пытался использовать

work_area = driver.find_element_by_css_selector('td[contains(@onclick, "work_area.php?SID"]')

и используя абсолютный xpath

work_area = driver.find_element_by_xpath("/html/body/table/tbody/tr[2]/td[1]/div/table/tbody/tr[2]/td/table/tbody/tr[3]/td")

Структура моих кнопок:

+---------------------+
|       Menu          |
+---------------------+
|     Work Area       |
+---------------------+
|     Details         |
+---------------------+

Я использую Python 3.6, а Selenium обновлен, есть предложения? Я также пробовал разные предложения, которые я мог найти в stackoverflow, но ничего не помогло.

1 Ответ

0 голосов
/ 05 сентября 2018

Вы можете использовать локаторы ниже:

driver.find_element_by_css_selector("td[onclick*='work_area']")
driver.find_element_by_xpath("//td[.='Work area']")

Ваш код ниже не верный, локатор xpath и вы используете селектор css:

work_area = driver.find_element_by_css_selector('td[contains(@onclick,"work_area.php?SID"]')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...