【问题标题】:Selenium webdriver: IE 11 element.Click() doesnt workSelenium webdriver:IE 11 element.Click() 不起作用
【发布时间】:2015-07-30 14:16:23
【问题描述】:

我试图找到任何解决方案,但没有什么对我没有帮助。

我有这个元素

<span data-lkd="GUI-411396" data-lkta="tc" data-lkda="title" class="panelbar_item" title="Hledat">Form</span>

在 Selenium 中,我找到了它

IWebElement form = GetElementAndWaitForEnabled(By.CssSelector("span[data-lkd=\'GUI-411396\']"));

这部分没问题。但是如果尝试在 IE11 中单击此元素,则没有任何反应

find.Click()

我尝试了一些解决方案,例如:

driver.SwitchTo().Window(driver.CurrentWindowHandle);
find.SendKeys(Keys.Enter);
find.Click();

但是什么也没发生。在 Chrome 和 Firefox 中,通常单击元素。 如果我点击其他元素,例如按钮,它适用于 IE 11。但我需要点击这个元素。

我正在使用 Selenium v​​2.46.0,IE 11(x86,x64)。

【问题讨论】:

标签: c# selenium selenium-webdriver webdriver internet-explorer-11


【解决方案1】:

使用 IE,您总是应该做一些额外的事情。试试这个“特殊”技巧:

IJavaScriptExecutor js = driver as IJavaScriptExecutor;
js.ExecuteScript("arguments[0].click();", find)

【讨论】:

    【解决方案2】:

    您似乎正在尝试单击 span 元素。不要使用变通方法单击 span 元素并尝试获得所需的效果,而是尝试检查它是否包含在锚元素或输入/按钮元素中。

    另外一个好的做法是记住始终将元素滚动到视图中,一个示例包装函数是:

    public static void clickElementAsUser(WebDriver driver, By by)
    {
        WebElement element;
    
        try
        {
            element = driver.findElement(by);
            scrollElementIntoView(driver, element);
            Thread.sleep(100); //Wait a moment for the element to be scrolled into view
            element.click();
        }
        catch(Exception e) //Could be broken into multicatch
        { 
            //Do Something
        }
    }
    
    public static void scrollElementIntoView(WebDriver driver, WebElement element)
    {
        try
        {
            ((JavascriptExecutor)driver).executeScript("arguments[0].scrollIntoView(true);", element);
        }
        catch(Exception e)
        {
            //Do Something
        }
    }
    

    如果您发布一个关于跨度的小代码示例,我可能会提供进一步的帮助。祝你好运!

    【讨论】:

    • 与其等待100ms,Thread.sleep(100),不如等待一个元素可见,只是我个人的喜好。 :-)
    • 非常正确,睡眠会导致过度等待或等待不足。
    猜你喜欢
    • 2016-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-23
    相关资源
    最近更新 更多