我有一个带有两个按钮“添加”和“关闭”的窗口框。我需要测试以下情况: 单击“添加”按钮时,它将引发错误,并且窗口保持打开状态。我需要点击“关闭”按钮才能继续。
我使用了以下代码:
if(element(by.xpath("xpath_of_error_box")).isEnabled())
{
element(by.xpath("xpath_of_close_button")).click();
}
但是它抛出以下错误:
No element found using locator: By(xpath, xpath_of_error_box)
有什么办法可以解决这个问题?
答案 0 :(得分:1)
根据该错误,您的xpath定位符似乎与任何元素都不匹配。根据问题的其他说明,您可以尝试:
<ul class="dropdown menu" data-dropdown-menu data-close-on-click-inside="false">
正如所指出的那样,在这种情况下,isEnabled可能不是您应该使用的正确方法。如果您尝试查找的元素似乎总是存在于dom中,则最好使用isDisplay来检查其可见性。 一个建议。在测试中使用xpath定位符不是一个好主意,因为这会将它们与您正在观察的网页的html DOM结构相关联。我们知道,UI经常更改,这也会使您的测试也经常制动。尽管这是个人喜好的选择,但直到对HTML进行一次很小的更改后,您最终进行了大量的Brocken测试,情况才如此。
答案 1 :(得分:0)
如果需要检查是否存在元素,则可以使用以下代码:
if (element(by.xpath("yourXpath")).isPresent())
但是您的问题不在您的if
代码上,您的问题是您搜索的xpath不存在。
答案 2 :(得分:0)
1.0.x
和1.0.*
返回Promise(不是布尔值),必须解决。isEnabled()
只能用于isPresent()
。PS。当然,很高兴看到您的HTML检查XPath的正确性。