java - Selenium Webdriver - Firefox 中的元素不可点击错误

标签 java firefox selenium selenium-webdriver browser-automation

通常出现在 chrome 驱动程序中的元素不可点击错误恰好也出现在 firefox 中。显示的错误消息:

  Exception in thread "main" org.openqa.selenium.WebDriverException: Element is not clickable at point (141, 299.29998779296875). Other element would receive the click: <div class="showOnTop" id="loadingPanelContainer"></div>
Command duration or timeout: 209 milliseconds
Build info: version: '2.51.0', revision: '1af067dbcaedd7d2ab9af5151fc471d363d97193', time: '2016-02-05 11:20:57'
System info: host: 'Bhaveen-ThinkPad', ip: '127.0.1.1', os.name: 'Linux', os.arch: 'i386', os.version: '3.13.0-77-generic', java.version: '1.7.0_95'
Session ID: 08e0d738-b946-4886-a179-9659d44b717b
Driver info: org.openqa.selenium.firefox.FirefoxDriver
Capabilities [{platform=LINUX, acceptSslCerts=true, javascriptEnabled=true, cssSelectorsEnabled=true, databaseEnabled=true,    browserName=firefox, handlesAlerts=true, nativeEvents=false, webStorageEnabled=true, rotatable=false, locationContextEnabled=true,  applicationCacheEnabled=true, takesScreenshot=true, version=44.0.2}]
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
    at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:206)
    at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:158)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:678)
    at org.openqa.selenium.remote.RemoteWebElement.execute(RemoteWebElement.java:327)
    at org.openqa.selenium.remote.RemoteWebElement.click(RemoteWebElement.java:85)
    at config.KeyActions.handleLeftMenu(KeyActions.java:479)
    at scripts.Vital_Data_Script.setVitalData(Vital_Data_Script.java:383)
    at scripts.Vital_Data_Script.executeActions(Vital_Data_Script.java:95)
    at scripts.Vital_Data_Script.executeTestCase(Vital_Data_Script.java:60)
    at scripts.Vital_Data_Script.main(Vital_Data_Script.java:31)

最佳答案

您可能应该等待元素可点击,您可以使用:

WebDriverWait wait = new WebDriverWait(driver, 30); 
wait.until(ExpectedConditions.elementToBeClickable(By.<your locator>));

或者有时您甚至需要将鼠标悬停在元素上以使其可点击。你可以这样做:

String mouseOverScript = "if(document.createEvent){var evObj = document.createEvent('MouseEvents');evObj.initEvent('mouseover', true, false); arguments[0].dispatchEvent(evObj);} else if(document.createEventObject) { arguments[0].fireEvent('onmouseover');}";
            ((JavascriptExecutor) driver).executeScript(mouseOverScript,
                     driver.findElement(By.<your locator>));

完成此操作后,您可以尝试:

普通的 click() 函数:

driver.findElement(By.<your locator>).click();

非原生 javascript 执行器:

JavascriptExecutor executor = (JavascriptExecutor) driver;
executor.executeScript("arguments[0].click();",  driver.findElement(By.<your locator>));

关于java - Selenium Webdriver - Firefox 中的元素不可点击错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35355643/

相关文章:

java - 向 StackPane 添加节点问题?

java - 始终将图标化的 JInternalFrames 保持在顶部

css - 在 div 中居中对齐图像

c# - Webdriver、CSharp、C# - 无法在窗口之间切换

java - 从 Java 字符串中删除字符 e280a8

java - Google 测量协议(protocol)不会在 GA 中记录命中。从浏览器工作正常

firefox - Selenium-WebDriver 不适用于代理

html - 使用显示 : table and display: inline-block 的 IE 或 FF 中的 Div 未正确对齐

python - 使用 WebDriver 区分 eBay 搜索结果中的列表和相关项目?

selenium.WebDriverException : unknown error: session deleted because of page crash from tab crashed