2017-08-31 141 views
0

我們正在使用C#.Net中的Selenium Web驅動程序開發IE Automation。Selenium Web驅動程序

我們正在處理模型彈出窗口時發生異常。我們應該在行動之下做。

當我們點擊鏈接按鈕,它會打開一個彈出窗口,然後我們需要切換到彈出窗口選擇複選框選項,並點擊提交按鈕。

當點擊鏈接按鈕時,我們可以打開彈出窗口。但是在這裏,我們正面臨着一個問題,例如子彈出窗口沒有加載數據並獲取HTTP 500內部服務器錯誤。

我不明白有時它是用相同的代碼正常工作,但並不是所有的時候我都會遇到上述問題,當我試圖在子窗口上執行上述操作時。

這是任何IE設置問題或我的代碼問題,即使我忽略IE設置中的保護模式設置。

我用下面的代碼嘗試:

js.ExecuteScript("arguments[0].click();", driver.FindElement(By.XPath("//*[@id='ByNewNotes']"))); 

(或)

string jsWindowString = "NewWindow('pop_Type.jsp?Type=External&IuserId=NUVJK50'," + sessionId + ",'400','500');return false"; 
((IJavaScriptExecutor)driver).ExecuteScript(jsWindowString); 

能否請您對這個問題有所幫助。

在此先感謝。

+0

你試圖等待代碼 –

+0

是的,我試過 新WebDriverWait(驅動程序,TimeSpan.FromSeconds(45)),直到(ExpectedConditions.ElementExists((By.XPath( 「// * [@ ID = 'ByNewNotes']」 ))))點擊(); –

+0

請仔細閱讀[問],特別是關於[mcve](MCVE)的部分,以及[預計需要多少研究工作?](https://meta.stackoverflow.com/questions/261592/how-much-research-effort這是預期的堆棧溢出用戶)這將幫助您調試自己的程序併爲自己解決問題。如果你這樣做並且仍然卡住,你可以回過頭來發布你的MCVE,你試過的,以及執行結果,包括任何錯誤信息,這樣我們可以更好地幫助你。還提供了一個鏈接到頁面和/或相關的HTML。 – JeffC

回答

0

而不是使用ExpectedConditions.ElementEx‌​ists使用ExpectedConditions.elementToBeClickablepresenceOfElementLocated

 WebDriverWait wait = new WebDriverWait(driver, 60); 
    WebElement element = wait.until(ExpectedConditions.elementToBeClickable(By.xpath(""//*[‌​@id='ByNewNotes']"))); 
    element.click(); 

可嘗試使用FluentWait的。由要等待並把它傳遞以下方法

WebElement waitsss(WebDriver driver, By elementIdentifier){ 
Wait<WebDriver> wait = 
new FluentWait<WebDriver>(driver).withTimeout(60, TimeUnit.SECONDS) .pollingEvery(1, TimeUnit.SECONDS).ignoring(NoSuchElementException.class); 

return wait.until(new Function<WebDriver, WebElement>() 
{ 
public WebElement apply(WebDriver driver) { 
return driver.findElement(elementIdentifier); 
}}); 
} 

希望它會幫助你:)你的元素的函數創建一個

0

你試過

Thread.Sleep(2000); 

我們有相同的問題和解決這個簡單的方法。

相關問題