Найти и нажать кнопку выбора, у которой нет имени, идентификатора или класса? - PullRequest
1 голос
/ 13 июня 2019

Вот это html:

<select>
<option value="" disabled="disabled">Select segment</option> 
<option value="EQ">Equity</option>
<option value="NSE-FO">Futures &amp; Options</option> 
<option value="NSE-CDS">Currency</option>
<option value="MCX-COM">Commodity</option></select>
</select>

Я пытался использовать xpath, select и т. Д. Но, похоже, я не могу найти способ щелкнуть по этому полю и впоследствии выбрать нужную опцию.

То, что я пробовал:

driver.find_element_by_xpath("//*[contains(text(),'Segment']")
driver.find_element_by_xpath("//select[contains='Segment']")
driver.find_element_by_xpath("//select[@label='Segment'")  #I can see why this wouldn't work

Спасибо за вашу помощь.

Ответы [ 2 ]

1 голос
/ 14 июня 2019

Вы можете получить выбор с помощью опций по этому пути:

".//option[@value='NSE-FO']/ancestor::select"

Если у вас есть больше вариантов выбора с этой опцией, попробуйте найти уникальную опцию для этого выбора.

И если этот выбор находится внутри другого выбора, и метод предка возвращает более одного, я не уверен, что этот сценарий возможен, вы можете попробовать с этим другим:

".//option[@value='NSE-FO']/../../select"

1 голос
/ 13 июня 2019

У вас есть опечатка в вашем xpath

driver.find_element_by_xpath("//*[contains(text(),'Segment']")

должно быть

driver.find_element_by_xpath("//*[contains(text(),'Segment')]")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...