0
我试图用C#,phantomjs和Selen从以下网站中获取链接。它使用从登录链接触发的登录弹出窗体。当我执行下面的代码时,弹出窗口在保存的图像中正确显示,但是在driver.PageSource行中没有更新DOM。弹出窗口显示用户名和密码字段,其中用户名输入的元素ID为iptvauth_field_username。当phantomjs和Selenium.WebDriver执行javascript时,如何查看DOM的更改?
有没有办法获得最新的HTML输出后,触发更改DOM的JavaScript?这似乎是这样一个微不足道的事情,网上的所有例子都非常基本,不包括这一点。
这些都是我的NuGet包
PhantomJS版本= “2.1.1”
phantomjs.exe版本= “1.9.2.1”
Selenium.WebDriver版本= “2.52.0”
var driver = new PhantomJSDriver();
driver.Url = "http://www.ufc.tv/";
driver.Navigate();
var source = driver.PageSource;
var loginLink = driver.FindElementByLinkText("Sign In");
loginLink.Click();
Screenshot sh = driver.GetScreenshot(); // shows popup
sh.SaveAsFile(@"d:\Temp.jpg", ImageFormat.Png);
var username = driver.FindElementById("iptvauth_field_username"); // does not exist
source = driver.PageSource; // does not show popup in
可能重复的[Selenium:无法访问iframe和其中的数据](http://stackoverflow.com/questions/9607964/selenium-unable-to-access-iframe-and-data-inside-it) –
该模式作为iframe加载。这就是为什么你没有看到它的来源。你必须先切换到帧。 –