我使用Selenium WebDriver与Java。
下面是我的html代码:
<div id="servicetype-pp" class="z-combobox-popup " style="display: none; width: auto;">
<ul id="servicetype-cave" class="z-combobox-content">
<li id="zk_comp_140" class="z-comboitem">
<li id="zk_comp_141" class="z-comboitem">
<span class="z-comboitem-image"></span>
<span class="z-comboitem-text">Bill Generation Service</span>
</li>
<li id="zk_comp_142" class="z-comboitem">
<li id="zk_comp_143" class="z-comboitem">
<li id="zk_comp_144" class="z-comboitem">
<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>
</div>
我通过包含特定文本的xpath定义了一个WebElement。
//div[@id='servicetype-pp']//span[contains(text(),'Bill Generation Service')]
它不起作用。但是,当我用一个词搜索时,没有任何空格,它工作正常。
//div[@id='servicetype-pp']//span[contains(text(),'Bill')] or
//div[@id='servicetype-pp']//span[contains(text(),'Generation')] or
//div[@id='servicetype-pp']//span[contains(text(),'Service')]
这似乎是空间的问题。
请帮助。
蒂亚。
其实你的
WebElement el = driver.findElement(By.id("servicetype-pp"));
el = (WebElement)((JavascriptExecutor)driver).executeScript("arguments[0].style.display = 'block';return arguments[0]", el);
//Now you can find your desire element
WebElement spanElement = el.findElement(".//span[contains(text(),'Bill Generation Service')]");
//Now do your further steps with this element
编辑:-如果您正在获取
NuSuchElementExcpetion
,这意味着可见性不是问题,则此元素可能位于frame
或iframe
中。如果是,您需要在找到以下元素之前切换该frame
或iframe
:
driver.switchTo().frame("frame name or id");
// Now go to find element
WebElement spanElement = driver.findElement(".//span[contains(text(),'Bill Generation Service')]");
您可以尝试使用normalize-space()
//div[@id='servicetype-pp']//span[contains(text()[normalize-space()], 'Bill Generation Service')]
我对硒很陌生。 我尝试构建一个测试来验证网页元素(小图标)是否显示在页面上。 因此,在我的类的顶部,我通过xpath定义了Web元素。 Xpath我在应用右键单击元素并单击检查后从检查中复制。 @通过(xpath=“//*[@id=”referrals“]/tbody/tr[2]/td[2]/div/img[2]”)私有WebElement链和twoarrowsicon查找; 然后在同一个类中,我
我正在使用Selenium WebDriver从下拉列表中获取值。不幸的是,我无法获取它,因为我的代码无法识别xpath。 这是我的代码: 问题在于第1行(WebElement选择器)。在输出中,我得到如下结果: 线程“main”组织中出现异常。openqa。硒。InvalidSelectorException:无法计算xpath表达式“id('search”)/x:fieldset/x:tabl
问题内容: 如果我搜索单个字符串,则效果很好: 但是我可以在下面的示例中有一个 or 语句吗? 问题答案: 在两个函数调用之间说 或使用函数使xpath不区分大小写
我正在尝试根据其文本内容选择一个元素。我正在使用XPath来实现这一点。 我只是感到困惑,这应该有效吗? 我甚至会复制HTML代码: div元素内部有“通知”字样。那么为什么它不起作用。 转到Facebook上的此页面:https://www.facebook.com/settings 使用此chrome扩展通过xPath突出显示任何区域。
我正在使用selenium在html页面上执行测试。我只能使用xpath来定位元素。我试图创建一个xpath,它允许我定位所有包含文本的div,这样我就可以用findElements保留这些WebElement的引用,不管它是什么,只要它不是空的。所以我有了这个xpath: //div[5]/div/div[2]
问题内容: 如何识别包含本机方法实现的库文件? 例如 我在哪里可以找到实现的方法是什么? 问题答案: 通过谷歌快速搜索找到答案 恒定池 符号表cpp:符号表hpp 尚未找到识别本地实施/库的通用方法的答案