java - 当 Selenium 中存在多个跨度时,如何读取 Span 标签中的文本

标签 java selenium-webdriver

<td class="rich-tabpanel-content" style="; ">
   <div id="page:form1:block1:j_id738" style="width:75%;">
      <span xmlns="http://www.w3.org/1999/xhtml" id="page:form1:block1:out">
         <b>
         <span style="text-align:right;font-size:15px;color:black">Risk Value</span>
         </b>  
         <b>
         <span style="text-align:right;font-size:15px;color:black"></span>
         <span style="text-align:right;font-size:14px;color:blue">Select a value for every risk.</span>
         </b>
      </span> 
   </div>
</td>     

我正在使用

String str = driver.findElement(By.cssSelector("div[id^='page:form1:block1:j_id738'] span ")).getText();

但它只获取风险值,而不获取其他文本

最佳答案

您正在寻找 driver.findElements 而不是 driver.findElement

尝试这样的事情:

List<WebElement> elements = driver.findElements(By.cssSelector("div[id^='page:form1:block1:j_id738'] span"));

然后循环遍历此列表并在每个元素上调用 getText() 以检索文本,即:

如果您使用的是 Java:

for (WebElement element : elements) {
     String data = element.getText();
     // do something with data
}

如果您使用 C#:

foreach (WebElement element in elements) {
     string data = element.getText();
     // do something with data
}

关于java - 当 Selenium 中存在多个跨度时,如何读取 Span 标签中的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47603371/

相关文章:

node.js - 语法错误 : Use of const in strict mode?

javascript - 如何在 javascript 语言绑定(bind)中使用 RemoteWebDriver? (在 Node.js 上运行)

java - findelements(by.xpath()) 仅返回列表的一个索引

ruby - 如何使用 Ruby 和 Selenium Watir-webdriver 执行 Ctrl+多次鼠标单击操作?

java - 接口(interface)方法的修饰符非法

Java 1.7.51 小程序的互联网限制

java - protected /公开的内部类

java - 如何防止在 Tomcat Apache 7 中取消部署应用程序

java - 用转义符号中的另一个符号替换反斜杠

google-chrome - 通过 CLI 标志在隐身模式下启用 Chrome 扩展?