Использование значения объекта JSON из URL в Selenium - PullRequest
0 голосов
/ 28 октября 2018

То, что я делаю (или пытаюсь сделать), это извлечение объекта JSON из URL-адреса, а затем десериализация его и использование значений Selenium "By.X", которые помещают это в мой код вместо жесткого кодирования.

Код:

dynamic theJsonDecoded = JsonConvert.DeserializeObject(json);
var test = theJsonDecoded.template.login_url.ToString();
//Helpers.returnMessage(theJsonDecoded.template.login_username_field.ToString());
driver.Navigate().GoToUrl(theJsonDecoded.template.login_url.ToString());
IWebElement user = driver.FindElement(theJsonDecoded.template.login_username_field.ToString());
user.SendKeys("xxxxxx@xxx.com");
IWebElement pass = driver.FindElement(theJsonDecoded.template.login_password_field.ToString());
pass.SendKeys("xxxxxx");
IWebElement loginButton = driver.FindElement(theJsonDecoded.template.login_button.ToString());
loginButton.SendKeys(OpenQA.Selenium.Keys.Enter);
Thread.Sleep(3000);
driver.Quit();

Все возвращается с URL, я могу вывести необходимые разделы JSON, но я получаю сообщение об ошибке:

OpenQA.Selenium.IWebDriver 'не содержит определения для' FindElement '

Это:

IWebElement user = driver.FindElement(theJsonDecoded.template.login_username_field.ToString());
user.SendKeys("xxxxxx@xxx.com");

Было бы это, если бы оно было жестко закодировано в:

IWebElement user = driver.FindElement(By.Id("user_email")
user.SendKeys("xxxxxx@xxx.com");

Когда я усердно его кодировал, он отлично работал. Я не уверен, что проблема может быть, любая помощь будет оценена.

1 Ответ

0 голосов
/ 28 октября 2018

Отсутствует параметр 'By' в элементе findElement вашего кода.

от - механизм определения местоположения, используемый для метода FindElement WebDriver.

См. FindElement - документация

Правильный путь это:

IWebElement user = driver.FindElement(By.id(theJsonDecoded.template.login_username_field.ToString()));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...