确定这里我的代码,但它会立即执行如何等待硒完成导航?
private static ChromeDriver mainDriver;
mainDriver.Navigate().GoToUrl(srFetchUrl);
string srPageSource = mainDriver.PageSource;
我必须获得源代码后,网页实际上是导航到新的页面,页面加载
确定这里我的代码,但它会立即执行如何等待硒完成导航?
private static ChromeDriver mainDriver;
mainDriver.Navigate().GoToUrl(srFetchUrl);
string srPageSource = mainDriver.PageSource;
我必须获得源代码后,网页实际上是导航到新的页面,页面加载
指定,隐性或显性等待到加载页面中的元素。
请参阅本link的C#语法等待
目前它给了我上一页的源代码。用这种方式它仍然可以提供上一页的源代码? – MonsterMMORPG
这不回答这个问题。如果您发布的链接中有某些具体内容,请在此处发布代码。 – JeffC
@MonsterMMORPG因为我理解你的问题,你需要导航到下一页,并获得该网页的源代码是否正确?纠正我,如果我错了。 现在根据我的理解,问题是由于立即执行它不会得到下一页的源代码,所以如果我们指定大量的等待,直到下一页加载,你可以执行命令来获取源代码。 – Dharam
你可以试试这个方法,这会等到页面加载完全,你可以添加你的预期时间的网页加载。
public void E_WaitForPageLoad() throws Exception
{
JavascriptExecutor js = (JavascriptExecutor)driver;
//This loop will rotate for 100 times to check If page Is ready after every 1 second.
//You can replace your if you wants to Increase or decrease wait time.
int waittime;
waittime = 60;
for (int i=0; i<waittime; i++)
{
try
{
Thread.sleep(1000);
}catch (InterruptedException e) {}
//To check page ready state.
if (js.executeScript("return document.readyState").toString().equals("complete"))
{
//System.out.println("Wait for Page Load : "+js.executeScript("return document.readyState").toString());
break;
}
}
System.out.println("\nWeb-Page Loaded.");
}
谢谢你,
埃德d,印度。
什么是'googleTranslateMainDriver'? ''mainDriver.getPageSource()'应该只在Selenium 2.0中完全载入页面后才返回。当然,JavaScript中的页面后加载修改不会被处理。 – dhke
@dhke是的,它是mainDriver。当我浏览时,它也会返回旧页面的源代码 – MonsterMMORPG
为什么不尝试页面载入超时? driver.manage()。timeouts()。pageLoadTimeout(10,TimeUnit.SECONDS); – shank087