要测试一些遗留页面,我需要针对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的配置。
此外,确认缩放级别和保护模式设置
答案 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循环将执行并等待元素也可见