在Selenium中的点(X,Y)处无法单击元素

时间:2016-04-28 05:49:17

标签: java selenium

我正在使用java编写一个selenium脚本。

在我的场景中,我有一个选择按钮和一个OK按钮。首次加载页面时,启用了选择按钮,并禁用了确定按钮。

当我点击“选择”按钮时,会出现一个弹出窗口。然后我从弹出窗口中的日期选择器中选择一个日期。选择日期后,单击弹出窗口中的确认按钮。单击确认按钮后,弹出窗口关闭,OK按钮启用。

这是我的测试场景。但是,当我运行它时,我的测试在单击“确定”按钮时失败。

我做了很多研究,并想出了一个滚动到我的代码。再次,我的测试在另一点失败(无法从日期选择器中选择日期。无法想象这是如何发生的。)

这是我的代码。

// Click Select button
driver.findElement(By.xpath("//tr[@id='0']/td[2]/a")).click(); 
System.out.println("User Clicked Select button");

// Select Days
driver.findElement(By.xpath("//div[@id='myModal0']/div/div/div[2]/div/div[2]/div/div/input")).click();
driver.findElement(By.xpath("//div[@id='ui-datepicker-div']/table/tbody/tr[5]/td[7]/a")).click(); 
System.out.println("User Selected the days the service is offered");

// Click Confirm Button
driver.findElement(By.xpath("//div[@id='myModal0']/div/div/div[2]/div/div[6]/button")).click(); 
System.out.println("User clicked Confirm Button");

// Page Scroll
JavascriptExecutor jse = (JavascriptExecutor)driver;
jse.executeScript("window.scrollBy(0,250)", "");

// Click OK Button
driver.findElement(By.xpath("/html/body/div[1]/div[4]/div/div[2]/table/tbody/tr[1]/td[6]/button")).click();
System.out.println("User Clicked OK Button");

以下是我收到的错误消息。

  

线程中的异常" main" org.openqa.selenium.WebDriverException:元素不可点击(1460.7666015625,159.03334045410156)。其他元素将收到点击:   命令持续时间或超时:89毫秒   构建信息:版本:' 2.53.0',修订版:' 35ae25b',时间:' 2016-03-15 17:00:58'   系统信息:主持人:' ET_LAHIRU',ip:' 192.168.1.4',os.name:' Windows 8.1',os.arch:&#39 ; amd64',os.version:' 6.3',java.version:' 1.8.0_25'   驱动程序信息:org.openqa.selenium.firefox.FirefoxDriver   Capabilities [{applicationCacheEnabled = true,rotate = false,handlesAlerts = true,databaseEnabled = true,version = 45.0.1,platform = WINDOWS,nativeEvents = false,acceptSslCerts = true,webStorageEnabled = true,locationContextEnabled = true,browserName = firefox,takesScreenshot = true,javascriptEnabled = true,cssSelectorsEnabled = true}]   会议ID:fea6e350-638c-4cb6-8136-79010aec01a4       at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)       at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)       at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)       at java.lang.reflect.Constructor.newInstance(Unknown Source)       在org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:206)       在org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:158)       在org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:678)       在org.openqa.selenium.remote.RemoteWebElement.execute(RemoteWebElement.java:327)       在org.openqa.selenium.remote.RemoteWebElement.click(RemoteWebElement.java:85)       在selrcdemo.Activities.activities(Activities.java:73)       在selrcdemo.ayubomain.main(ayubomain.java:69)

有人可以告诉我一个解决方案吗?

提前致谢。 :)

1 个答案:

答案 0 :(得分:0)

找出了我自己的答案。

在“确定”按钮之前添加了Thread.sleep(5000);

现在我的代码按预期工作了。 :)