我对硒很陌生。
我尝试构建一个测试来验证网页元素(小图标)是否显示在页面上。
因此,在我的类的顶部,我通过xpath定义了Web元素。
Xpath我在应用右键单击元素并单击检查后从检查中复制。
@通过(xpath=“//*[@id=”referrals“]/tbody/tr[2]/td[2]/div/img[2]”)私有WebElement链和twoarrowsicon查找;
然后在同一个类中,我有一个方法来评估我的图标是否出现:
public boolean IconChainWithArrowIsFound() throws InterruptedException {
return ChainAndTwoArrowsIcon.isDisplayed()
&& ChainAndTwoArrowsIcon.getAttribute("title").toString().contains("Associated, and was successfully sent.");
}
这是我的代码的最后一部分,我在同一代码中使用的所有xpath引用在所有代码中都工作得很好。
但是,在运行结束时,我发现我描述的这个位有一个错误:
组织。openqa。硒。NoSuchElementException:没有这样的元素:无法定位元素:{“方法”:“xpath”,“选择器”:“/*[@id=“references”]/tbody/tr[2]/td[2]/div/img[2]”
请参见所附图片
xPath图像
我能给你一个可能出错的建议吗?提前谢谢你。
请检查页面是否有框架/iframe,以及您试图查找的元素是否在框架/iframe中。如果是这样,您需要首先使用驱动程序切换到上述帧。切换到()。frame('frameName'),然后您应该能够找到您的元素。
isDisplayed()
如果找不到元素,将导致NoTouchElementException。如果找到它,它将正常工作。
基本上,您永远无法确定它是否有效,因为它直接依赖于元素定位器,这不是最佳实践。
有两种方法可以处理这种情况
代码:
@FindBy(xpath = "//*[@id='referrals']/tbody/tr[2]/td[2]/div/img[2]")
private List<WebElement> ChainAndTwoArrowsIcon;
public boolean IconChainWithArrowIsFound() throws InterruptedException {
boolean flag = false;
List<WebElement> elements = new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfAllElements(ChainAndTwoArrowsIcon));
if (elements.size()>0) {
System.out.println("Element is visible");
ChainAndTwoArrowsIcon.get(0).getAttribute("title").toString().contains("Associated, and was successfully sent.");
return flag = true;
}
else {
System.out.println("Element is not visible");
return flag;
}
}
基本上,如果找到元素,findElements将返回一个列表,如果找不到元素,那么我们将有一个空列表。根据列表的大小,我们导出了上面的if和else。
代码:
@FindBy(xpath = "//*[@id='referrals']/tbody/tr[2]/td[2]/div/img[2]")
private WebElement ChainAndTwoArrowsIcon;
public boolean IconChainWithArrowIsFound() throws InterruptedException {
try {
return ChainAndTwoArrowsIcon.isDisplayed()
&& ChainAndTwoArrowsIcon.getAttribute("title").toString().contains("Associated, and was successfully sent.");
}
catch (Exception e) {
System.out.println("Something went wrong.");
e.printStackTrace();
return false;
}
}
我使用Selenium WebDriver与Java。 下面是我的html代码: 我通过包含特定文本的xpath定义了一个WebElement。 它不起作用。但是,当我用一个词搜索时,没有任何空格,它工作正常。 这似乎是空间的问题。 请帮助。 蒂亚。
我正在使用Selenium WebDriver从下拉列表中获取值。不幸的是,我无法获取它,因为我的代码无法识别xpath。 这是我的代码: 问题在于第1行(WebElement选择器)。在输出中,我得到如下结果: 线程“main”组织中出现异常。openqa。硒。InvalidSelectorException:无法计算xpath表达式“id('search”)/x:fieldset/x:tabl
下面的代码应该做到以下几点:1。连接到www.brainly.ro并使用凭据2登录。打开用户窗口Lola1511 3。打开所有已回答的问题,查看是否已通过审核。如果未批准,则批准。 下面我发布了我的整个代码(到站点的链接和凭据都在那里)
问题内容: 我使用,当我得到 我删除了构建路径,然后又做了 ,仍然是同样的错误。 问题答案: 该代码不是Java SE的一部分,因此这些类将不在JRE中。您需要找到并下载包含这些类的JAR文件,然后将其添加到Eclipse构建路径中。 (可以在此处下载JAR的一个地方,但是如果此链接中断,可以轻松进行自己的搜索。请转到Maven Central或findjar。)
下面是selenium找不到元素的代码。 但不知何故,它失败了,对我不起作用。它总是给我以下例外情况:过时的元素引用:元素未附加到页面文档 添加了--GetElementStextList的代码 感谢任何帮助。谢谢
我在eclipse中签出了一个gradle项目,但它不能识别任何注释 其中配置是注释。 所有与注释对应的导入也失败,错误如下: 包含所有文件的整个项目将填充错误。但在Intellij中,同样的项目不存在这样的问题。我错过了Eclipse的哪一个设置? gradle build工作很好,尽管