Python 需要单击下拉菜单中的文本以更改下拉菜单中的默认选项
我对python和selenium webdriver还不熟悉。html代码的示例结构是Python 需要单击下拉菜单中的文本以更改下拉菜单中的默认选项,python,selenium,selenium-webdriver,Python,Selenium,Selenium Webdriver,我对python和selenium webdriver还不熟悉。html代码的示例结构是 ::之前 在任何情况下,您确定这是一个下拉菜单吗? 通常,下拉菜单html如下所示: <select name="cars"> <option value="volvo">Volvo</option> <option value="saab">Saab</option> <option value="fiat"&
::之前
在任何情况下,您确定这是一个下拉菜单吗?
通常,下拉菜单html如下所示:
<select name="cars">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="fiat">Fiat</option>
<option value="audi">Audi</option>
</select>
沃尔沃汽车
萨博
法令
奥迪
您的示例看起来更像一个列表项:
此下拉列表不是使用选择和选项标签创建的。因此,从selenium中选择类将不起作用
解决办法是:
使用selenium单击下拉列表
将每个元素存储在列表中,并逐个将其与所需文本匹配。如果匹配发生,只需点击它李>
我提供的代码为2,你可以写你自己的代码为第一部分
drop_down = self.driver.find_elements_by_css_selector("li.env-data a")
for values in drop_down:
if values.text==ENVNAME2:
values.click()
在过去,我使用javascript解决了很多问题。你可以试试看这是否有效
driver.execute_script("document.getElementById('configured-env')='ENVNAME2'")
不,这行不通。作为OP共享的HTML,下拉列表不是使用select和options标记生成的。此代码将导致类型错误:“WebElement”对象不可编辑
@Andersson:更改为查找元素
。“无论如何,谢谢你。”克鲁斯潘迪和安德森非常感谢你的帮助。代码对我有用。env_dropdown=self.driver.find_element_by_xpath('//li[@class=“dropdown env dropdown”]”)ActionChains(self.driver.move_to_element(env_dropdown).perform()time.sleep(2)drop_down=self.driver.find_元素由css_选择器(“li.env-data a”)为下拉列表中的值查找_元素:if values.text==“ENVNAME2”:value.click()
driver.execute_script("document.getElementById('configured-env')='ENVNAME2'")