2016-06-08 4 views
0

Привет Я новичок в Selenium Webdriver. Я могу успешно открыть веб-страницу и найти на ней элементы.Selenium Webdriver не возвращается Код Javascript

В одном случае я заметил, что есть ссылка на странице, которая через какое-то время становится доступной. В Firebug на вкладке «Сценарий» я вижу код для javascript, который выполняет функцию таймера.

Но с помощью Selenium WebDriver, если я выдаю:

driver.PageSource 

Я не могу увидеть исходный код для JavaScript. Отсрочка в течение 30 секунд перед запросом источника не имеет значения. Я попытался найти его с различными параметрами By, используя:

driver.FindElement 

и так далее, но его нет.

Как firebug удалось найти и показать исходный код Javascript? Есть ли способ, которым я могу заставить Selenium Webdriver вернуть весь код, на который ссылается страница?

Или есть лучший подход?

Спасибо за любой совет!

EDIT ---------------------

Я попытался следующие в Firefox:

Dim Driver2 As IWebDriver = New Chrome.ChromeDriver 
Driver2.Url = "http://mypage" 
Dim js As IJavaScriptExecutor = TryCast(Driver2, IJavaScriptExecutor) 
Dim title As String = DirectCast(js.ExecuteScript("return JSON.stringify(window)"), String) 

и я получил

доступ запрещен доступ к свойству «» toJSON

Я читал, что это не будет работать в Firefox, так что я пытался в Chrome, и получил

Blocked кадра с началом «http://mypage» от доступа к поперечного происхождению кадра

и оттуда не решений, так как в соответствии с this Сва ограничения безопасности, по-видимому, вы не можете получить доступ к с Javascript

Я начинаю думать, что Im немного из моей глубины здесь.

ответ

0

PageSource вероятно не возвращает точный снимок DOM & т.д.

Вместо этого вы можете осмотреть JavaScript с помощью driver.executeScript() но бремя анализа возврата объекта могут быть обескураживающим.

Независимо - Вот надуманный пример:

Object result = driver.executeScript("return JSON.stringify(window)"); 
System.out.println(result.toString()); 
+0

спасибо за ваш ответ. Я пробовал это, но придумал некоторые проблемы, см. Измененный вопрос. – TripleAntigen

Смежные вопросы