我在线程“main”中的getException org.openqa.selenium.ElementNotInteractableException
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我在线程“main”中的getException org.openqa.selenium.ElementNotInteractableException相关的知识,希望对你有一定的参考价值。
码:
WebElement betting = driver.findElement(By.id("flex-menu"));
List<WebElement> hallo = betting.findElements(By.xpath("//*[@id='flex-menu']//ul//li//a"));
System.out.println(hallo.get(0).getText());
hallo.get(0).click();
错误按摩:
线程“main”中的异常org.openqa.selenium.ElementNotInteractableException:
会话ID:4bfaaf77-6275-4ffc-a8d7-b24b70f3acca at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl。 java:45)at org.openqa.selenium.remote上的org.openqa.selenium.remote.http.W3CHttpResponseCodec.createException(W3CHttpResponseCodec.java:187)中的java.lang.reflect.Constructor.newInstance(Constructor.java:422) .http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:122)org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:49)org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java) :164)org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:83)org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:601)atg.openqa.selenium。 remote.RemoteWebElement.execute (RemoteWebElement.java:279)atf.openqa.selenium.remote.RemoteWebElement.click(RemoteWebElement.java:83)at Aufgabe1.Main.main(Main.java:41)
该守则有什么问题?我不能点击但它找到了元素。
可能是因为两个原因。
1)您的按钮元素可见但尚未可点击。如果是这种情况则使用等待条件。
WebDriverWait myWaitVar = new WebDriverWait(driver,20);
WebElement el = myWaitVar.until(ExpectedConditions.elementToBeClickable(betting.findElements(By.xpath("//*[@id='flex-menu']//ul//li//a")).get(0)));
el.click();
2)如果元素被其他元素隐藏/重叠,请使用javascriptExecutor
WebDriverWait myWaitVar = new WebDriverWait(driver,20);
WebElement el = myWaitVar.until(ExpectedConditions.elementToBeClickable(betting.findElements(By.xpath("//*[@id='flex-menu']//ul//li//a")).get(0)));
((JavascriptExecutor)driver).executeScript("arguments[0].click()", el);
这可能是因为您正在尝试的元素被隐藏/需要隐式等待条件。尝试使用.enable()函数实现隐式显式等待条件,然后尝试使用.click()函数。
以上是关于我在线程“main”中的getException org.openqa.selenium.ElementNotInteractableException的主要内容,如果未能解决你的问题,请参考以下文章
线程“main”中的异常 java.lang.ClassNotFoundException: sample.Main - 为啥?
如何摆脱 Android Studio 警告“未抛出 getException() 的结果”?
如何解决线程“main”中的异常,java.lang.ArithmeticException:/为零? [关闭]
如何修复运行时错误-线程“main”java.util.NoSuchElementException中的异常
线程“main”中的异常com.sun.xml.internal.ws.fault.ServerSOAPFaultException:客户端从服务器收到SOAP Fault