如何通过其内部文本(Python)找到Selenium按钮?

spr*_*ssd 5 python selenium selenium-webdriver

我有以下三个按钮,我无法弄清楚如何抓取它们内部的文本(例如异常值).我试过browser.find_element_by_link_text("Outliers").click(),但得到"无法找到元素"错误.我该怎么做?

在此输入图像描述

jmu*_*sch 19

XPath的另一个例子:

browser.find_element_by_xpath('//button[text()="Outliers"]')
Run Code Online (Sandbox Code Playgroud)


Pri*_*ske 17

有两种方法:

  1. 通过使用text()方法:

browser.find_element_by_xpath('//button[text()="Outliers"]')

  1. 通过使用normalize-space()方法:

browser.find_element_by_xpath('//button[normalize-space()="Outliers"]')

注:它始终是更好地使用正常化空间()方法,因为它会工作,即使有存在的空间处文本的末尾文本或开始,因为正常化空间()方法修剪左右侧空间

有关Normalize-space() 的更多信息


Gra*_*per 6

试试这个XPath:

"//button[@class='three-state-item btn btn-default'][.='Outliers']"

  • 使用 `.` 而不是 `text()` 实际上更可靠,因为即使元素内有多个文本节点它也会工作(它会将它们连接起来) (4认同)