繁体   English   中英

IE Webdriver pageSource由于JavaScript而在页面更改后未刷新

[英]IE Webdriver pageSource is not refreshing after chnage in page due to javaScript

我正在尝试使用C#中的Selenium自动化Web应用程序,
在主页上,我单击了指向另一页的链接。 然后我使用以下代码切换到这个新页面
string parent = webDriver.CurrentWindowHandle; while (webDriver.WindowHandles.Count <= 1) ; // wait for new tab foreach (string handle in webDriver.WindowHandles) { if (handle != parent) { webDriver.SwitchTo().Window(handle); break; } }
这个新页面只有两个链接(用于选择用户角色)
单击第二个链接后,整个页面将通过javascipt更改,并且新数据将加载到同一页面上
但是,即使页面已更改,webdriver也会返回相同的pageSource(具有2个链接的页面)
浏览器正确给出了更改页面的标题
我已经阅读了文档,其中IE Webdriver并不总是返回最新的pageSource
考虑到,只有页面Source不正确,驱动程序正在处理我期望的页面
所以我做了一个小测试
webDriver.FindElements(By.XPath(//a);但是它没有提供来自更改页面的标签,而是提供了具有两个选择链接的页面标签。
为什么驱动程序不返回最新标签?
我坚持这个问题,我将非常感谢任何帮助..
提前致谢!!

在获取页面源之前,我将等待一个指示页面已完全加载的元素:

WebDriverWait wait = new WebDriverWait(driver, 20);

// switch to the next window
String main_handle = driver.getWindowHandle();
wait.until((WebDriver drv) -> {
    for (String handle : drv.getWindowHandles()) {
        if (handle != main_handle) {
            drv.switchTo().window(handle);
            return true;
        }
    }
    return false;
});

// wait for an element which presence indicates that the page is loaded
wait.until(ExpectedConditions.presenceOfElementLocated(By.id("...")));

// get the page source
String page_source = driver.getPageSource();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM