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)。
对于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
}
}
如果你张贴什么是围绕跨度的小代码样本,我可能能够进一步帮助。古德勒克!