Тесты 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 будет выполняться и ждать, пока элемент не станет видимым.