Selenium webdriver: IE 11 element.Click()不起作用

本文关键字:Click 不起作用 element webdriver IE Selenium | 更新日期: 2023-09-27 18:05:46

我试图找到任何解决办法,但都无济于事。

元素

<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 v2.46.0, IE 11 (x86, x64)。

Selenium webdriver: IE 11 element.Click()不起作用

对于IE,你总是需要做一些额外的事情。试试这个"特殊"的技巧:

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

看起来您正在尝试点击一个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
    }
}

如果你张贴什么是围绕跨度的小代码样本,我可能能够进一步帮助。古德勒克!