代码:
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 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:422) 在 org.openqa.selenium.remote.http.W3CHttpResponseCodec.createException(W3CHttpResponseCodec.java:187) 在 org.openqa.selenium.remote.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) 在 org.openqa.selenium.remote.RemoteWebElement.execute(RemoteWebElement.java:279) 在 org.openqa.selenium.remote.RemoteWebElement.click(RemoteWebElement.java:83) 在Aufgabe1.Main.main(Main.java:41)
该守则有什么问题?我不能点击,但它找到了元素。
答案 0 :(得分:1)
可能是因为两个原因。
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);
答案 1 :(得分:0)
这可能是因为您正在尝试的元素被隐藏/需要隐式等待条件。尝试使用.enable()函数实现隐式显式等待条件,然后尝试使用.click()函数。