如何在C#中使用Selenium时配置和设置HTMLUNIT?

时间:2014-11-27 06:54:11

标签: selenium selenium-webdriver selenium-server

我设置了selenium远程驱动程序并运行selenium服务器.Selenium服务器正常运行,当我尝试运行我的代码时使用:

        var remoteServer = new Uri("http://127.0.0.1:4444/wd/hub");
        DesiredCapabilities desiredCapabilities = DesiredCapabilities.Firefox();
        desiredCapabilities.IsJavaScriptEnabled = true;
 myDriver = new RemoteWebDriver(remoteServer, desiredCapabilities, new TimeSpan(0,1, 30));

CMD日志中没有错误抛出,元素可以正常找到,但是当我尝试使用以下代码运行时会出现问题:

      var remoteServer = new Uri("http://127.0.0.1:4444/wd/hub");
       DesiredCapabilities desiredCapabilities = DesiredCapabilities.HtmlUnit();
       desiredCapabilities.IsJavaScriptEnabled = true;
       myDriver = new RemoteWebDriver(remoteServer, desiredCapabilities, new TimeSpan(0, 1, 30));

在日志中会抛出大量错误,当我尝试查找任何元素时,会在日志中显示超时异常。 我的测试代码如下:

        myDriver.Manage().Window.Maximize();
        myDriver.Navigate().GoToUrl(tollFreeURL);
        IWebElement planClick = myDriver.FindElement(By.ClassName("trial"));
        planClick.Click();
        IWebElement startPlan = myDriver.FindElement(By.Id("choose2000"));
        startPlan.Click();
        IWebElement selectValue = myDriver.FindElement(By.Name("AreaCode"));
        var selectElement = new SelectElement(selectValue);
        selectElement.SelectByValue("800");
 IWebElement selectNumber = myDriver.FindElement(By.XPath("//*[@id='divList']/div[1]"));
        tollFreeNumber = selectNumber.Text;
        tollFreeNumber = stringConvert.StringRefiner(tollFreeNumber, " ");
        tollFreeNumber = stringConvert.StringRefiner(tollFreeNumber, "(");
        tollFreeNumber = stringConvert.StringRefiner(tollFreeNumber, ")");
        tollFreeNumber = stringConvert.StringRefiner(tollFreeNumber, "-");
        Console.WriteLine(tollFreeNumber);

我的目标是在后台运行应用程序并生成数据,所以我没有任何选择使用Firefox运行它.HTMLUNIT是我的唯一选择。帮助需要它会在最后3-4天困住我。

1 个答案:

答案 0 :(得分:0)

我相信您的计算机正在使用代理服务器。尝试在创建驱动程序实例时添加该代理配置。

String PROXY = "xx.xx.xx.xx:8080"; 
OpenQA.Selenium.Proxy proxy = new OpenQA.Selenium.Proxy();
proxy.HttpProxy=PROXY;
proxy.FtpProxy=PROXY;
proxy.SslProxy=PROXY;

将代理设置添加到所需的功能:

desiredCapabilities.SetCapability(CapabilityType.PROXY, proxy);