硒测试不适用于IE8

时间:2015-03-05 05:06:19

标签: selenium selenium-webdriver internet-explorer-8 webdriver ie8-compatibility-mode

要测试一些遗留页面,我需要针对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 个答案:

答案 0 :(得分:0)

你试过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 :(得分:0)

很难找到元素存在,

所以你可以使用do while循环来获取元素数> 1,

do
{
    Thread.Sleep(500);
}while(driver.FindElements(By.Id("IDNAME")).Count>0);

除非直到,元素的计数得到,否则这个do循环将执行并等待元素也可见