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