我已阅读所有之前的帖子并尝试了所有建议。我通过截图验证了页面正在加载。在那。我有30秒的隐式等待,PhantomJS等待。我有一个完全限定的URL。我已经使用ChromeDriver测试了下面相同的简单代码片段,它可以通过翻转到该驱动程序来实现。有什么想法吗?
[TestClass]
public class UnitTest1
{
[TestMethod]
public void TestMethod1()
{
var d = new PhantomJSDriver();
//var d = new ChromeDriver();
try
{
var s = "abc";
d.Manage().Window.Maximize();
d.Manage().Timeouts().ImplicitlyWait(System.TimeSpan.FromSeconds(10));
d.Navigate().GoToUrl("http://www.google.com");
var e = d.FindElement(By.Name("q"));
e.SendKeys(s);
e.Submit();
Assert.AreEqual<String>(s + " - Google Search", d.Title);
}
catch(Exception e)
{
((ITakesScreenshot)d).GetScreenshot().SaveAsFile("c:\\exception.png", System.Drawing.Imaging.ImageFormat.Png);
Console.WriteLine(d.PageSource);
throw e;
}
finally
{
d.Quit();
}
}
答案 0 :(得分:0)
Google可能会根据用户代理和/或视口大小使用不同的HTML代码进行响应。设置桌面浏览器的视口(如1280x1024)以获得桌面版本,而400x300的默认PhantomJS视口获得更轻的移动版本。
有关如何更改视口大小的信息,请参阅https://stackoverflow.com/a/23840494/2715393