Selenium WebDriver在兼容模式下使用InternetExplorerDriver单击标签

时间:2013-07-12 10:47:15

标签: c# internet-explorer selenium webdriver

在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);
}

3 个答案:

答案 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)

https://code.google.com/p/selenium/issues/detail?id=5977提交了一个错误,并在http://jsbin.com/ijaqog

提交了示例页面