我在 Java 中使用 selenium。我无法从作为组合框的 html 元素获取文本。每次我在组合框中获得所选值的空白文本时。
下面是我的组合框的 html 结构。
<ul id="servicetype-cave" class="z-combobox-content" style="height: auto; width: auto;">
<li id="zk_comp_140" class="z-comboitem">
<li id="zk_comp_141" class="z-comboitem">
<li id="zk_comp_142" class="z-comboitem">
<li id="zk_comp_143" class="z-comboitem">
<li id="zk_comp_144" class="z-comboitem z-comboitem-selected">
<span class="z-comboitem-image"/>
<span class="z-comboitem-text">Bill Grouping Service</span>
</li>
<li id="zk_comp_145" class="z-comboitem">
<li id="zk_comp_146" class="z-comboitem">
<li id="zk_comp_147" class="z-comboitem">
<li id="zk_comp_148" class="z-comboitem">
<li id="zk_comp_149" class="z-comboitem">
<li id="zk_comp_150" class="z-comboitem">
</ul>
我在元素中使用了下面的 xpath
@FindBy(xpath = "//ul[@id='servicetype-cave']/li[contains(@class,'z-comboitem-selected')]/span[@class='z-comboitem-text']")
public WebElement selectedServiceName;
public void selectService {
// Selecting an option from dropdown
WebElement tempEle = driver.findElement(By.xpath("(//div[@id='servicetype-pp']//span[2])[3]"));
commonFunctions.clickElement(tempEle);
String strtemp = selectedServiceName.getText();
System.out.println("Selected Service: " + strtemp);
}
请帮忙。
TIA。
最佳答案
我建议您尝试使用 By.cssSelector()
,如下所示:-
WebElement el = driver.findElement(By.cssSelector("ul#servicetype-cave li.z-comboitem-selected span.z-comboitem-text"));
或
WebElement el = driver.findElement(By.cssSelector("ul#servicetype-cave li.z-comboitem.z-comboitem-selected span:nth-child(2)"));
现在使用 .getText()
获取文本,如下所示:
el.getText();
如果不幸的是 .getText()
不起作用,请尝试使用 .getAttribute("textContent")
如下:
el.getAttribute("textContent");
或尝试使用 .getAttribute("innerHTML")
如下:
el.getAttribute("innerHTML");
希望它有效......:)
关于java - 无法从 Selenium Java 的 html 元素获取文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38722010/