在Intranet或“兼容性视图”启用的网站上调试(即IE未关注)时,有没有人成功点击过标签?我已经尝试了EnableNativeEvents
/ RequireWindowFocus
/ EnablePersistentHover
我能想到的所有组合(RequireWindowFocus
只悬挂浏览器),发送js片段以点击无效
此处Process.Start
模拟失去焦点,例如当遇到断点时。
Windows 7 x64,IE 10 x86,WebDriver 2.33.0.0,IEDriverServer Win32 2.33.0
[Test]
public void CompatibilityViewLabel()
{
var options = new InternetExplorerOptions
{
EnableNativeEvents = false,
//RequireWindowFocus = true,
//EnablePersistentHover = true,
};
var driver = new InternetExplorerDriver(options);
driver.Navigate().GoToUrl("http://www.w3schools.com/tags/tryit.asp?filename=tryhtml_label");
var filter = (byte[])Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Internet Explorer\BrowserEmulation\ClearableListData").GetValue("UserFilter");
if (filter == null || !Encoding.Unicode.GetString(filter).Contains("w3schools.com"))
Assert.Fail("Click Compatibility View icon and retest.");
driver.SwitchTo().Frame("iframeResult");
var input = driver.FindElement(By.Id("male"));
var label = driver.FindElement(By.CssSelector("label[for='male']"));
Process.Start("cmd");
label.Click();
//driver.ExecuteScript("arguments[0].click()", label);
Assert.IsTrue(input.Selected);
}
答案 0 :(得分:0)
该页面格式错误,它有两个正文元素,您尝试查找的元素位于第二个正文中。尝试使用其他页面。
答案 1 :(得分:0)
你应该尝试:
WebDriverWait wait = new WebDriverWait(driver, new TimeSpan(0,0,5));
wait.Until(drv => drv.FindElement(By.Id("male"));
在label.click();
之前答案 2 :(得分:0)