Python Selenium:无法通过链接文本找到元素

Chr*_*ris 0 html python selenium selenium-webdriver

我正在尝试从其他选项列表中选择“seltarget”。

HTML:

<div class="filter-item" data-reactid=".3.1.0.0.1.0.0.3.0.0.0.3">seltarget</div>
Run Code Online (Sandbox Code Playgroud)

当导出到 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()
Run Code Online (Sandbox Code Playgroud)

这暂时有效,因为“seltarget”恰好是列表中的第 5 位。上面的行将选择列表中第 5 个选项。我想更具体地选择元素“seltarget”

Guy*_*Guy 5

定位方式link_text仅适用于<a>标签。要定位此元素,您可以使用该类(如果它是唯一的)

driver.find_element_by_class_name('filter-item').click()
Run Code Online (Sandbox Code Playgroud)

或者data-reactid属性

driver.find_element_by_css_selector('[data-reactid*="3.1.0.0.1.0.0.3.0.0.0.3"]').click()
Run Code Online (Sandbox Code Playgroud)

要按文本定位,您还可以使用 css_selector

driver.find_element_by_css_selector('div:contains("seltarget")').click()
Run Code Online (Sandbox Code Playgroud)

或者 xpath

driver.find_element_by_xpath('//div[contains(text(), "seltarget")]').click()
Run Code Online (Sandbox Code Playgroud)