Java 元素在Selenium中的点(X,Y)处不可单击

Java 元素在Selenium中的点(X,Y)处不可单击,java,selenium,Java,Selenium,我正在用java编写一个selenium脚本 在我的场景中,我有一个选择按钮和一个确定按钮。当我第一次加载页面时,“选择”按钮处于启用状态,“确定”按钮处于禁用状态 当我点击选择按钮时,会出现一个弹出窗口。然后我从弹出窗口中的日期选择器中选择一个日期。选择日期后,我单击弹出窗口中的确认按钮。单击确认按钮后,弹出窗口关闭,OK按钮启用 这是我的测试场景。但是,当我运行此测试时,我的测试在单击OK按钮时失败 我做了很多研究,并在代码中添加了一个滚动条。我的测试在另一点再次失败(无法从日期选择器中选择

我正在用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.7666015625159.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:'amd64',os.version:'6.3',java.version:'1.8.0_25' 驱动程序信息:org.openqa.selenium.firefox.FirefoxDriver 功能[{applicationCacheEnabled=true,rotatable=false,handlesAlerts=true,databaseEnabled=true,version=45.0.1,platform=WINDOWS,nativeEvents=false,acceptSslCerts=true,WebStorage Enabled=true,locationContextEnabled=true,browserName=firefox,takesScreenshot=true,javascriptEnabled=true,CSSSelectorEnabled=true}] 会话ID:fea6e350-638c-4cb6-8136-79010aec01a4 位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法) 位于sun.reflect.NativeConstructorAccessorImpl.newInstance(未知源) 位于sun.reflect.delegatingConstructor或AccessorImpl.newInstance(未知源) 位于java.lang.reflect.Constructor.newInstance(未知源) 位于org.openqa.selenium.remote.ErrorHandler.CreateTrowable(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)

有人能告诉我一个解决办法吗


提前感谢。:)

我自己找到了答案

增加
线程睡眠(5000)确定按钮之前


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

我自己找到了答案

增加
线程睡眠(5000)确定按钮之前


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

你在测试哪个网站?它是公共的吗?这些
XPath
是令人毛骨悚然的:)你不应该使用绝对
XPath
!这不会解决您当前的问题,但会保护您免受未来问题的影响:)@Akbar,很抱歉不是这样public@Andersson谢谢您有当前问题的解决方案吗?@QualityProducts,您可以尝试应用
WebDriverWait
+
预期条件
模块来增加元素可单击的等待时间。但我不知道如何在
Java
:)中实现这一点,您正在测试哪个网站?它是公共的吗?这些
XPath
是令人毛骨悚然的:)你不应该使用绝对
XPath
!这不会解决您当前的问题,但会保护您免受未来问题的影响:)@Akbar,很抱歉不是这样public@Andersson谢谢您有当前问题的解决方案吗?@QualityProducts,您可以尝试应用
WebDriverWait
+
预期条件
模块来增加元素可单击的等待时间。但我不知道如何在
Java
:)中实现这一点