我希望单击“新测试”。 HTML 代码看起来像这样。
我是新来的,开始使用 selenium-python 学习自动化。
<li id="testing">
<ul class="dd">
<li><a href="javascript:toolsPopup('/abc/xyz/text.html');"><span>New Test</span></a></li>
<li><a href="javascript:toolsPopup('/abc/xyz/list.html');"><span>Test List</span></a></li>
</ul>
</li>
我尝试使用的代码
element=driver.find_element_by_id('testing')
drp=Select(element)
drp.select_by_visible_text('New Test')
但出现错误
selenium.common.exceptions.UnexpectedTagNameException: Message: Select only works on <select> elements, not on <li>
任何帮助将不胜感激。谢谢!
作为下拉元素,文本为New Test不与在Select
您无法使用的节点Select
班级。选择<option>
文本为New Test你需要诱导WebDriver等待为了element_to_be_clickable()
你可以使用以下内容xpath based 定位策略:
-
Using CSS_SELECTOR
:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "li#testing > ul.dd li > a[href*='/abc/xyz/text.html'] > span"))).click()
-
Using XPATH
:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//li[@id='testing']/ul[@class='dd']//li/a/span[text()='New Test']"))).click()
-
Note:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
参考
您可以在以下位置找到一些相关讨论:
- 如何使用 Selenium 和 Python 通过爬虫测试非标准下拉列表
- 使用 selenium python 选择剑道下拉菜单
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)