我有这个HTML
<div class="callout callout-accordion" style="background-image: url("/images/expand.png");">
<span class="edit" data-pk="bandwidth_bar">Bandwidth Settings</span>
<span class="telnet-arrow"></span>
</div>
我尝试选择文本为Bandwidth Settings
的span,然后单击类名为callout
的div。
if driver.find_element_by_tag_name("span") == ("Bandwidth Settings"):
print "Found"
time.sleep(100)
driver.find_element_by_tag_name("div").find_element_by_class_name("callout").click()
print "Not found"
time.sleep(100)
我一直收到
Testing started at 1:59 PM ...
Not found
Process finished with exit code 0
我错过了什么?
选择父 div
if driver.find_element_by_xpath("//span[text()='Bandwidth Settings']") is None:
print "Not Found"
else:
print "Found"
span = driver.find_element_by_xpath("//span[text()='Bandwidth Settings']")
div = span.find_element_by_xpath('..')
div.click()
我得到了
Web驱动程序异常:消息:未知错误:要素
3条答案
按热度按时间vhmi4jdf1#
一种方法是像这样使用
find_element_by_xpath(xpath)
:对于完全匹配(如您在评论中所要求的),请使用
"//span[text()='Bandwidth Settings']"
对于您的 * 编辑过的 * 问题,请尝试以下操作之一:
直接查找(如果没有其他匹配元素):
通过 span 定位(前提是该级别上没有任何其他 div):
hs1ihplo2#
需要使用的代码:
如果需要选择父元素
div
:5lhxktic3#
如果页面上有sizzle(jQuery),您可以按文本选择跨距,如下所示:
使用C#绑定时,将按如下方式选择: