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加載。這就是爲什麼你沒有看到它的來源。你必須先切換到幀。 –