【问题标题】:"Cannot call method 'indexOf' of undefined" when using Google Chrome (*googlechrome) as Selenium RC target使用 Google Chrome (*googlechrome) 作为 Selenium RC 目标时,“无法调用未定义的方法 'indexOf'”
【发布时间】:2011-06-26 14:51:53
【问题描述】:

我正在尝试使用 Selenium Grid 在 Google Chrome 9.0.597.98 beta 中运行测试。我使用 Selenium Grid 附带的默认 *googlechrome 目标从 C# 启动测试。当我尝试打开一个站点时,我遇到了 “无法调用未定义的方法 'indexOf'” 错误。

我发现有人建议解决方案是通过传递一些参数来稍微降低 Chrome 的安全性。 This post 建议使用这样的东西:

DefaultSelenium selenium = new DefaultSelenium(location, port, browser, targetPath);

BrowserConfigurationOptions bco = new BrowserConfigurationOptions();

selenium.start(bco.setCommandLineFlags("--disable-web-security"));

由于某种原因,我在任何地方都看不到BrowserConfigurationOptions这是 Selenium dll 附带的东西吗?它是 .NET 版本中不可用但在其他版本中可用的东西吗?我有哪些选项来设置这个“--disable-web-security”选项?有没有更好的方法来做到这一点?

【问题讨论】:

    标签: google-chrome selenium selenium-rc selenium-grid


    【解决方案1】:

    试试这个

    [TestInitialize]
    
    public void PreTest()
    {
     selenium = new    DefaultSelenium("localhost",4444,"googlechrome","http://www.ryanhayes.net")
    }
    
    
    [TestMethod]
    
    public void TestRyanHayesDotNet()
    {
    selenium.Open("/")
    
    }
    

    在 ryanhayes.net 解决问题后删除 /

    【讨论】:

      【解决方案2】:

      非常感谢,我正在查看此信息,我在这里找到了! 现在我可以在 googlechrome 中运行我的测试,之前我遇到了同样的问题。

      以下代码对我有用:

      BrowserConfigurationOptions webSec = new BrowserConfigurationOptions();
      selenium.start(webSec.setCommandLineFlags("--disable-web-security"));
      

      【讨论】:

        【解决方案3】:

        您假设 .Net 没有 BrowserConfigurationOptions 对象是正确的,但幸运的是您不需要它(它只是一个薄包装器)。 DefaultSelenium 对 Start() 方法有两个覆盖。其中一个不带参数并正常启动浏览器,但另一个带一个字符串指定浏览器选项。试试selenium.Start("--disable-web-security")

        【讨论】:

        • 对我来说,Start 似乎没有过载。我正在运行 ThoughtWorks.Selenium.Core.dll 的 v1.1.4322。我需要一个不同的包含重载的地方吗?
        • 找到了。我最初下载了 Selenium RC 版本,它只有 .Start()。我刚刚获得了 Selenium WebDriver 版本,其中包含更新的 Thoughtworks.Selenium.Core.dll。我添加了禁用网络安全选项,但我仍然收到相同的错误消息。一定是别的东西。 :-/
        • 在 C# DefaultSelenium 中,不是 ISelenium 具有 Start with options 重载。但是,它并不像宣传的那样工作。我可以通过确保我的所有工作都在同一个域上完成来避免错误消息。在您的示例中,所有内容都在ryanhayes.net
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-01-20
        • 2013-01-01
        • 2011-10-14
        • 1970-01-01
        • 1970-01-01
        • 2023-03-22
        • 1970-01-01
        相关资源
        最近更新 更多