点击()后,Selenium驱动程序不反映页面更改

时间:2015-04-06 08:44:56

标签: javascript java selenium selenium-webdriver webdriver

以下代码返回的源不会反映调用click()后由javascript引起的网页更改。我错过了什么?

driver.findElement(By.xpath(xpath)).click(); // changes page content
Thread.sleep(10000);
String src = driver.getPageSource(); // src does not reflect changes

1 个答案:

答案 0 :(得分:4)

您不应该依赖网络驱动程序getPageSource()方法。

来自文档:

  

getPageSource

     

java.lang.String getPageSource()

     

获取上次加载的页面的来源。如果页面已被修改   加载后(例如,通过Javascript),无法保证   返回的文本是修改后的页面的文本。请咨询   用于确定是否的特定驱动程序的文档   返回的文本反映页面或文本的当前状态   最后由Web服务器发送。返回的页面源是   底层DOM的表示:不要指望它被格式化   或者以与从Web服务器发送的响应相同的方式进行转义。   把它想象成艺术家的印象。

     

返回:当前页面的来源

http://selenium.googlecode.com/git/docs/api/java/org/openqa/selenium/WebDriver.html#getPageSource%28%29