使用Selenium Webdriver时是否需要为PhantomJS启用javascript?

时间:2013-10-28 16:07:05

标签: nunit selenium-webdriver phantomjs ghostdriver

我在IE和Chrome网络驱动程序上运行NUnit中的测试套件。但是当我想尝试无头的PhantomJS(Ghostdriver)时,我无法让它执行我想要执行的操作。

遇到像

这样的简单问题

[TestFixture]
class PhantomJSTest{

    protected IWebDriver driver;

    [SetUp]
    public void Setup() {
        driver = new PhantomJSDriver(@"..\..\..\..");
    }

    [Test]
    public void PhantomTest() {
        driver.Navigate().GoToUrl(adress);
        driver.FindElement(selector).Click();
    }

    [TearDown]
    public void Teardown() {
        driver.Close();
        driver.Quit();
    }
}

[TestFixture] class PhantomJSTest{ protected IWebDriver driver; [SetUp] public void Setup() { driver = new PhantomJSDriver(@"..\..\..\.."); } [Test] public void PhantomTest() { driver.Navigate().GoToUrl(adress); driver.FindElement(selector).Click(); } [TearDown] public void Teardown() { driver.Close(); driver.Quit(); } }

当执行点击时,应该在我的数据库中设置一些内容,因此当手动返回该页面时,我应该能够看到它。 NUnit测试本身设置为成功,但操作永远不会发生。在尝试基于之前的操作执行某些操作时,这一点尤为明显。任何帮助,将不胜感激! =)

1 个答案:

答案 0 :(得分:0)

我建议您遵循以下活动:

1)尝试使用基于phantomJs的节点(-s)重新启动你的selenium hub。

2)尝试使用而不是

 driver.Navigate().GoToUrl(adress);

这一个:

driver.get(URL);
driver.findElement(selector).click();

3)还可以看到phantomJs文档以获取所有phantomJs功能:

GhostDriver额外功能

  • phantomjs.page.settings.SETTING = VALUE - 配置page.settings PhantomJS内部页面对象(WebDriver上下文中的窗口)。 Reference
  • phantomjs.page.customHeaders.HEADER = VALUE - 添加额外的HTTP标头 加载URL时Reference

PhantomJSDriver(Java绑定)功能

  • phantomjs.binary.path - 指定要使用的PhantomJS可执行文件的路径
  • phantomjs.ghostdriver.path - 指定GhostDriver main / src.js的路径 要使用的脚本;允许使用不同版本的GhostDriver 嵌入PhantomJS的那个
  • phantomjs.cli.args - 指定要传递给的命令行参数 PhantomJS可执行文件
  • phantomjs.ghostdriver.cli.args - 指定命令行参数 传递给GhostDriver(只与...一起工作) phantomjs.ghostdriver.path)

有关详细信息,请访问GhostDriver page

同时浏览phantomJs command line options。此信息也可能对您有所帮助。

希望这会对你有所帮助。