2016-04-28 143 views
1

我正在使用java編寫一個selenium腳本。元素在Selenium中的點(X,Y)不可點擊

在我的方案中,我有一個選擇按鈕和一個確定按鈕。當我第一次加載頁面時,選擇按鈕被啓用並且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' 系統信息:host:'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,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(本機方法) 在sun.reflect.NativeConstructorAccessorImpl.newInstance(來源不明) 在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(來源不明) 在java.lang.reflect.Constructor.newInstance(來源不明) 在組織.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在selrcdemo(RemoteWebDriver.java:678) 在org.openqa.selenium.remote.RemoteWebElement.execute(RemoteWebElement.java:327) 在org.openqa.selenium.remote.RemoteWebElement.click(RemoteWebElement.java:85) .Activities.activities(Activities.java:7 3) 在selrcdemo.ayubomain.main(ayubomain.java:69)

有人能告訴我一個解決方案?

在此先感謝。 :)

+0

您正在測試哪個網站?它是公開的嗎? – Akbar

+2

這些'XPaths'是一些令人討厭的東西:)你不應該使用絕對的'XPath'!這不會解決你目前的問題,但會保護你免受未來的問題:) – Andersson

+0

@Akbar,對不起,它不公開 –

回答

0

找出我自己的答案。

在確定按鈕之前添加了Thread.sleep(5000);

現在我的代碼按預期工作。:)

相關問題