Тесты Selenium не работают на IE8
Чтобы протестировать некоторые устаревшие страницы, мне нужно выполнить несколько тестов IE8
, Эти же тесты эффективно работают против IE10/11, FF, Chrome
без проблем.
public void TypePassword(string password)
{
var element = new WebDriverWait(Driver, TimeSpan.FromSeconds(10)).Until(
ExpectedConditions.ElementIsVisible(By.XPath("//input[@id='txtPassword']")));
//I also tried with just id and cssselector
element.Clear();
element.SendKeys(password);
}
Я тоже пробовал
public void TypePassword(string password)
{
Password.Clear();
Password.SendKeys(password);
}
Что интересно,
public void TypeUsername(string username)
{
Username.Clear();
Username.SendKeys(username);
}
всегда работать без проблем.
The IE driver configuration
var options = new InternetExplorerOptions { EnableNativeEvents = false};
options.AddAdditionalCapability("EnsureCleanSession", true);
Driver = new InternetExplorerDriver(options);
Кажется, мне не хватает какой-то конфигурации, специфичной для IE8.
Также подтвержден уровень масштабирования и настроен защищенный режим.
2 ответа
Вы пробовали JavascriptExecutor?
var element = new WebDriverWait(Driver, TimeSpan.FromSeconds(10)).Until(ExpectedConditions.ElementIsVisible(By.XPath("//input[@id='txtPassword']")));
((JavascriptExecutor)Driver).executeScript("arguments[0].value='"+password+"'", element);
Трудно найти элемент существует,
так что вы можете перейти на количество элементов>1, используя цикл do while,
do
{
Thread.Sleep(500);
}while(driver.FindElements(By.Id("IDNAME")).Count>0);
До тех пор, пока не будет получено количество элементов, этот цикл do будет выполняться и ждать, пока элемент не станет видимым.