亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Selenium 腳本在彈出窗口打開時掛起,10 分鐘后正常運行

Selenium 腳本在彈出窗口打開時掛起,10 分鐘后正常運行

www說 2023-10-19 21:26:09
我遇到一個奇怪的問題,當我單擊打開彈出窗口時,代碼會凍結 10-12 分鐘,然后與彈出窗口正常交互。以下是完整代碼:System.setProperty("webdriver.chrome.driver", System.getProperty("user.dir")+ "\\exe\\chromedriver.exe");      driver = new ChromeDriver();driver.manage().window().maximize();driver.manage().deleteAllCookies();driver.manage().timeouts().pageLoadTimeout(10, TimeUnit.SECONDS);driver.manage().timeouts().implicitlyWait(120, TimeUnit.SECONDS);driver.get(prop.getProperty("https://genpact-qa-smartit.onbmc.com"));          driver.findElement(By.xpath("//*[@id='okta-signin-username']")).sendKeys(userid);driver.findElement(By.xpath("//*[@id='okta-signin-password']")).sendKeys(pwd);driver.findElement(By.xpath("//*[@id='okta-signin-submit']")).click();driver.findElement(By.xpath("//a[@id='header-search_button']")).click();driver.findElement(By.xpath("//input[@id='globalSearchBox']")).sendKeys("CRQ000000029504");Robot robot=new Robot();robot.keyPress(KeyEvent.VK_ENTER);robot.keyRelease(KeyEvent.VK_ENTER); driver.findElement(By.xpath("//a[text()='View Full Change']")).click(); Thread.sleep(3000); driver.findElement(By.xpath("//div[@title='Print']")).click(); Thread.sleep(3000);Actions a = new Actions(driver);a.moveToElement(driver.findElement(By.xpath("//button[contains(text(),'Print Change')]")));a.click();a.perform();Set<String> window_handles=driver.getWindowHandles();String child=null;System.out.println(window_handles.size()); for(String handle:window_handles) {     child=handle; }單擊“打印更改”10-12 分鐘并單擊新彈出窗口上的“打印”按鈕后,以上代碼將凍結。操作系統:Windows 10;瀏覽器:Chrome 77.0.3865.90;硒 3.141.59任何幫助,將不勝感激。
查看完整描述

1 回答

?
POPMUISE

TA貢獻1765條經驗 獲得超5個贊

問題是 window.showModalDialog() 使用 js 將其設置為 window.open 。


 ((JavascriptExecutor) driver).executeScript("window.showModalDialog = window.open;");

或者


使用這個js點擊,就可以解決問題


 JavascriptExecutor js1 = (JavascriptExecutor) driver; 

 WebElement element = driver.findElement(By.xpath("//button[contains(text(),'Print Change')]"));

 js1.executeScript("var elem=arguments[0]; setTimeout(function() {elem.click();}, 100)", element);



查看完整回答
反對 回復 2023-10-19
  • 1 回答
  • 0 關注
  • 169 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號