То, что я делаю (или пытаюсь сделать), это извлечение объекта 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");
Когда я усердно его кодировал, он отлично работал. Я не уверен, что проблема может быть, любая помощь будет оценена.