【问题标题】:Why I cannot use LINQ and IJavaScriptExecutor in Selenium 3.0 and how to solve it?为什么我不能在 Selenium 3.0 中使用 LINQ 和 IJavaScriptExecutor 以及如何解决它?
【发布时间】:2016-10-15 22:48:58
【问题描述】:

我使用以下规格进行测试:
Mozilla Firefox 46.1
Selenium WebDriver 2.53.1 via Nuget
Windows 10 64bit

这是我的代码

using (IWebDriver driver = new FirefoxDriver())
{
    driver.Navigate().GoToUrl("someURL");
    //error
    var e_email = driver.FindElements(By.TagName("input"))
        .Where(x => x.GetAttribute("name") == "email" 
        && x.GetAttribute("Placeholder") == "Guest Email").FirstOrDefault();

    //also error
    string js = "var paras = document.getElementsByClassName('someClass');for(var i=0;i<paras.length;i++) {{ paras[i].parentNode.removeChild(paras[i]);}}";
    ((IJavaScriptExecutor)driver).ExecuteScript(js);
}

以上代码在Mozilla Firefox 46.1Selenium 2.53.1 中运行良好。当我用geckodriver 0.11.1 更新Selenium to ver 3.0Mozilla Firefox to ver 47 时出现错误

在更新到新版本后执行时,它会为 LINQ 生成 error : Permission denied to access property 'navigator' 和为 IJavaScriptExecutor 生成 Permission denied to access property 'document'。为什么会发生这种情况以及如何解决这个问题?

【问题讨论】:

  • someURL 值可能有问题
  • @viveknuna 没有,因为当我降级到以前的版本时它运行良好
  • 你在使用 iframe 吗?
  • @viveknuna 不。我没有使用任何 iframe 或框架。

标签: c# selenium selenium-firefoxdriver


【解决方案1】:

我在等待 WebDriverWait 中相当复杂的 XPath 时遇到了类似的问题,最终修复它的是将 Firefox 更新到 49.0.2。

【讨论】:

    猜你喜欢
    • 2012-05-20
    • 1970-01-01
    • 1970-01-01
    • 2016-06-08
    • 2013-08-18
    • 2010-10-08
    • 1970-01-01
    • 1970-01-01
    • 2010-11-22
    相关资源
    最近更新 更多