<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();
但它只获取风险值而不是其他文本
答案 0 :(得分:1)
您正在寻找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
}
答案 1 :(得分:0)
您所需的部分中有多个span标记。因此,您必须使用 findElements 方法,而不是使用 findElement 。 findElements 返回驻留在指定css或className中的元素列表。所以你的代码看起来应该像 -
List<WebElement> elements = driver.findElements(By.cssSelector("div[id^='page:form1:block1:j_id738'] span"));
for (WebElement element : elements) {
System.out.println(element.getText());
}