首页 > 解决方案 > 在硒中获取文本()不返回文本

问题描述

我有一个关于 xpath 的问题。我尝试使用屏幕截图中显示的代码获取文本。

我想从此 xpath 获取文本(是)。

当我写时在控制台中:

//*[@id='info_is_network']/label[contains(@class , "ant-radio-button-wrapper ant-radio-button-wrapper-checked ant-radio-button-wrapper-disabled" )]/span/text(`)

没关系,找到了元素。

但是,当我这样做时,在代码中:

WebElement element = driver2.findElement(By.xpath("//*[@id='info_is_network']/label[contains(@class , \"ant-radio-button-wrapper ant-radio-button-wrapper-checked ant-radio-button-wrapper-disabled\" )]/span"));
String res = element.getText();
String res2 = element.getAttribute("value");

我在两次尝试中都得到 null 或什么都没有。

可能是什么原因?日志中没有错误。只需从开发工具复制到 intelij。

在此处输入图像描述

屏幕图片(按钮不可点击,仅供查看)

在此处输入图像描述

标签: javaseleniumselenium-webdriverxpathwebdriverwait

解决方案


给定的 xpath 正在寻找第一个 span 元素。这解释了为什么你得到 null。您必须获得以下兄弟姐妹才能获得正确的文本。试试这个 xpath,

   WebElement element = driver2.findElement(By.xpath("//*[@id='info_is_network']/label[contains(@class , \"ant-radio-button-wrapper ant-radio-button-wrapper-checked ant-radio-button-wrapper-disabled\" )]/span/following-sibling:span"));
   String res = element.getText();

推荐阅读