我正在编写一个元素的selenium代码。它将错误标记为ElementNotFoundException
我知道元素被隐藏或其风格为无的原因 我用Google搜索,我找到了以下解决方案:
((JavascriptExecutor) this.webdriver).executeScript("arguments[0].click();", elementToClick);
...但我的元素在一个循环中。对于第一次迭代,它是成功的,但在进一步的迭代中它会抛出相同的异常。
任何人都可以解释arguments[0]
吗?
答案 0 :(得分:1)
是的,在您的示例中,“arguments [0]”= elementToClick。此外,当我没有其他选项来点击某些东西时,我只使用了JavascriptExecutor,而且几乎从未发生过。例如,我使用JavascriptExecutor进行分页,因为Selenium没有正确执行此功能的功能。
所以,如果您正在寻找的元素确实设置了'display = none',那么您应该做的是使用带有WebDriverWait(或FluentWait)的ExpectedConditions.visibilityOfElementLocated条件。
对于有时可见或不可见的元素的所有其他情况,请使用ExpectedConditions.presenceOfElementLocated。
将Wait类与ExpectedConditions一起使用,您可以使用while循环来忽略某些异常并重新尝试直到满足条件。