2016-03-29 136 views
0

我想从其他选项列表中选择“seltarget”。Python Selenium:通过链接文本找不到元素

HTML: <div class="filter-item" data-reactid=".3.1.0.0.1.0.0.3.0.0.0.3">seltarget</div>

当导出python文件也建议我与XPath定位元素: driver.find_element_by_xpath("//div[@id='quickswitcher']/div/nav/ul/li/div/div/menu/div[2]/div/div/div/div[5]").click()

这是工作的时间是因为“seltarget”恰好是第5在列表中。上面的行将选择列表中的第五个选项。我想要更具体一些,并选择元素“seltarget”

+0

见http://stackoverflow.com/questions/5441680/css-selector-based-on-element-text您可以通过reactid选择或跨度添加到您的seltarget – TheoretiCAL

回答

1

如果您想通过其文本找到div,可以使用以下命令。

driver.find_element_by_xpath("//div[text()='seltarget']") 
4

定位link_text只适用于<a>标签。要找到这些元素,你可以使用类,如果它独特的

driver.find_element_by_class_name('filter-item').click() 

还是data-reactid属性

driver.find_element_by_css_selector('[data-reactid*="3.1.0.0.1.0.0.3.0.0.0.3"]').click() 

要通过文本查找您也可以使用css_selector

driver.find_element_by_css_selector('div:contains("seltarget")').click() 

或者xpath

driver.find_element_by_xpath('//div[contains(text(), "seltarget")]').click() 
+0

我能够选择“ seltarget“通过找到它的'data-reactid'来定位它。 我仍然希望能够通过它的名称来选择它:“seltarget” 列表中的所有选项都有'class =“filter-item”' 任何其他建议? – Chris

+0

@Chris我通过文本添加了选项 – Guy

相关问题