Selenium点击有时无法使用Edge驱动程序

时间:2016-11-16 15:07:38

标签: selenium selenium-webdriver microsoft-edge

请参阅下面的图片。我尝试使用Selenium通过以下方法选择输入标记:

   1. `element.Click();`
   2. `element.SendKeys(Keys.Enter);`
   3. Actions action = new Actions(Browser.Driver).MoveToElement(element);
        action.Click().Perform();

我试图点击该复选框,通过代码中的属性返回该代码,该代码具有以下代码:

  WebDriverWait wait = new WebDriverWait(Browser.Driver, TimeSpan.FromSeconds(60));
            IWebElement checkbox = wait.Until(ExpectedConditions.ElementExists((By.CssSelector("label[for='PerformerIndependence_AcceptTermsAndConditions']"))));
            return checkbox;

WebDriverWait wait = new WebDriverWait(Browser.Driver, TimeSpan.FromSeconds(60));
            IWebElement checkbox = wait.Until(ExpectedConditions.ElementExists((By.CssSelector("input#PerformerIndependence_AcceptTermsAndConditions"))));
            return checkbox;

由于某种原因如果我在调试模式下运行代码来测试返回的元素,那么它将单击。如果我只是使用Visual Studio2015在运行模式下运行我的测试,则不会单击该复选框。使用该元素单击三次尝试的方法包含在try / catch块中。请帮忙!!!

Screenshot

1 个答案:

答案 0 :(得分:0)

我也面临这个问题。单击复选框在Edge中不起作用。

有两种解决方法:

  1. 使用JS单击
  2. 使用动作类。

WebElement element = driver.findElement(By.id(“ abc”));

JavascriptExecutor js =(JavascriptExecutor)驱动程序;

js.executeScript(“ arguments [0] .click();”,元素);

================================================ ==========

Actions动作=新的Actions(驱动程序);

action.moveToElement(element).click()。perform();

在我的情况下,两者都很好。