C# PhantomJS单击链接不工作

C# PhantomJS单击链接不工作,c#,selenium-webdriver,phantomjs,C#,Selenium Webdriver,Phantomjs,我正在尝试使用以下代码获取yellowpages结果第二页的URL: var driverService = PhantomJSDriverService.CreateDefaultService(); var driver = new PhantomJSDriver(driverService); driver.Navigate().GoToUrl(new Uri("http://www.yellowpages.com/los-angeles-ca/pizza?g=Los+Angeles%2C

我正在尝试使用以下代码获取yellowpages结果第二页的URL:

var driverService = PhantomJSDriverService.CreateDefaultService();
var driver = new PhantomJSDriver(driverService);
driver.Navigate().GoToUrl(new Uri("http://www.yellowpages.com/los-angeles-ca/pizza?g=Los+Angeles%2C+CA"));
string url = driver.Url;
var next = driver.FindElementByCssSelector(".next");
next.Click();            
string newUrl = driver.Url;
找到并单击了“下一步”链接,但在调用
next.Click()
后,我没有得到新的URL

其他页面工作正常。我现在只是在黄页上有问题


有什么想法吗?

确保已打开控制台输出,以便可以看到确切的错误:

service.HideCommandPromptWindow = true;
我也有类似的问题,当我打开控制台输出时,我注意到以下错误:“找不到变量:_doPostBack”


在我的例子中,这是因为网站拒绝了defaut Phantom的用户代理,所以我必须更改它()。

尝试使用此方法来单击web元素,而不是使用
单击()


您可能需要等待,因为该按钮触发ajax请求,然后才加载下一个页面。URL未更改。请尝试设置
driverService.SslProtocol=“tlsv1”然后将其传递给驱动程序。你能试着等一下吗?请参阅来源:这很有效!即使没有延长等待时间。谢谢大家!@斯塔斯:你是说原因吗?由于POODLE的原因,一些网站从服务器上删除了SSLv3。因此,应将PhantomJS ssl协议设置为TLSv1,以便加载这些站点。但是从链接的答案中应该可以清楚地看到这一点。这将起作用,我有一个名为click的自定义函数,我在其中使用click()来表示chrome、FF和phantomjs,我使用javaScript。仅供参考,代码是用Java编写的
JavascriptExecutor js = (JavascriptExecutor)driver;

js.executeScript("arguments[0].click();", next);