硒元素被不存在的元素阻止

时间:2018-09-21 20:38:53

标签: selenium

我正在尝试使用Java运行一些Selenium测试,但是某些字段被另一个字段阻塞,并且无法单击。问题是页面源中实际上不存在其他字段。

validate = {
    "match": ["1", "1.5", "10", "10.5", "102"],
    "nomatch": ["0", "0.", "0.5", "0.55", "102.", "102.5", "102.55", "foo"]
}
matches = all(match(s) for s in validate["match"])
nomatches = any(match(s) for s in validate["nomatch"])
print( matches and not(nomatches))
#True

没有元素带有其他标签(id,class等)。那么这个神秘的领域是什么?

有趣的是,如果我尝试先访问其他字段,则会得到不同的模糊字段,该字段在页面上也不存在。如:

The error is: Element <select id="pets" class="sumo form-control SumoUnder" name="pets"> is not clickable at point (1025.833351135254,677.4000244140625) because another element <span> obscures it

以交互方式观看测试无济于事;引发错误时,看不到任何阻塞元素的东西。

这些幻影字段来自哪里,如何阻止它们阻止我的字段?

编辑:我发现SumoSelect正在添加这些字段。当您查看页面源代码时,它们不会显示,但是如果您保存页面并在本地打开它们,它们将在那里。

<p class="CaptionCont SelectBox">

3 个答案:

答案 0 :(得分:0)

如果无法点击,则可能是可选的。

Select pets = new Select(driver.findElement(By.id("pets")));
pets.selectByIndex(1);

答案 1 :(得分:0)

使用JS库增强Select时-您需要查看JS库创建的最终DOM。对于SumoSelect-选择框本身的CSS是:

<p class="CaptionCont SelectBox" title=" Volvo">
   <span> Volvo</span>
   <label><i></i></label>
</p>

看到span了吗?如果要单击下拉菜单,则需要单击该跨度。

答案 2 :(得分:0)

尝试使用JavaScript执行器单击。

参考链接:-http://learn-automation.com/click-in-selenium-webdriver-using-java-script/