Я хочу проверить значение глобального объекта с помощью Selenium. Но до сих пор я не мог сделать это с помощью FirefoxDriver ...Selenium + FirefoxDriver доступ к глобальному объекту javascript
Запуск чего-то вроде driver.ExecuteScript("return 1+2");
действительно возвращает 3, как ожидалось; работающий driver.ExecuteScript("return myObject");
действительно работает с драйвером Chrome, но дает null в FirefoxDriver.
следующие работы в Chrome, но бросает исключение в Firefox:
//driver is either an instance of FirefoxDriver or ChromeDriver
driver.Url = "https://www.google.com";
driver.Navigate();
//gbar is a global object at google.com
var result = driver.ExecuteScript("return gbar");
Assert.NotNull(result);
Исключение:
System.InvalidOperationException : ReferenceError: gbar is not defined (UnexpectedJavaScriptError)
StackTrace:
at OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Response errorResponse)
at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary`2 parameters)
at OpenQA.Selenium.Remote.RemoteWebDriver.ExecuteScriptCommand(String script, String commandName, Object[] args)
at OpenQA.Selenium.Remote.RemoteWebDriver.ExecuteScript(String script, Object[] args)
at ...
Использование Selenium.Webdriver 2.53.0 и Firefox Developer Edition 48.0a2 и регулярные Firefox 46.0.1 работает на Win10, .Net 4.6.1.
Спасибо за идею (по крайней мере, теперь я знаю эту функцию Selenium), но не повезло. Когда я изучал селен, браузер провел минуты на главной странице google с прикрепленным отладчиком. Также попытался получить доступ к объекту через окно, но не повезло с этим либо ... –
Возможно, это связано с вашей версией Firefox. Ваш пример отлично работает со мной на Win8.1/Firefox 46. Можете ли вы хотя бы получить переменную в консоли браузера, запущенной с помощью Selenium? –
Ну, только что проверил обычный Firefox v.46.0.1 и тот же результат. Переменная присутствует в открытой консоли FF, но не может получить ее с Selenium. Например, отправка предупреждения («привет») показывает окно предупреждения в браузере. –