javascript - 无法在 javascript 中使用 webdriver 打开 chrome

标签 javascript google-chrome firefox selenium selenium-chromedriver

我在 Windows 机器上尝试 webdriverjs 时遇到了一个非常奇怪的问题,希望得到您的帮助或建议。我按照网上的说明,首先 npm install selenium-webdriver,然后下载 chromedriver 并配置其路径。在继续测试之前,我仔细检查安装,chrome 和 firefox 是否正常工作,并且在 cmd 上运行“chromedriver”时,它也可以正常工作“在端口 9515 上启动 ChromeDriver 2.14.313457 仅允许本地连接。”所以我认为系统设置是正确的。然后我尝试了使用 js 的第一个简单示例。下面是我的代码:

var webdriver = require('selenium-webdriver');

var driver = new webdriver.Builder().
   withCapabilities(webdriver.Capabilities.firefox()).
   build();

driver.get('http://www.google.com/ncr');

driver.sleep(10000);

driver.quit();

这在 Firefox 中工作得非常好,并且 Firefox 会打开并定向到 google 页面。然而,当我使用 chrome 切换到第二个示例时,chrome 从未打开,也没有显示错误消息,它只是卡在那里。这是我使用的第二个示例,与第一个示例的唯一区别是将 firefox 更改为 chrome

var webdriver = require('selenium-webdriver');

var driver = new webdriver.Builder().
   withCapabilities(webdriver.Capabilities.chrome()).
   build();

driver.get('http://www.google.com/ncr');

driver.sleep(10000);

driver.quit();

我不知道为什么 webdriver 无法打开 chrome,我在互联网上搜索了一些答案,但没有找到任何答案。

更奇怪的部分来了。我更改了代码以先构建 firefox-driver,然后构建 chrome-driver,代码如下

var webdriver = require('selenium-webdriver');

var driver = new webdriver.Builder().
   withCapabilities(webdriver.Capabilities.firefox()).
   build();
var driver_2 = new webdriver.Builder().
   withCapabilities(webdriver.Capabilities.chrome()).
   build();
driver_2.sleep(10000);

driver_2.quit();

这样firefox和chrome都打开了。所以我的问题是“为什么 chrome 没有打开,除非我在它之前构建了一个 firefox”??? 请给我一些建议,还是我电脑的某些设置有问题?感谢你的帮助!!!

最佳答案

设置正确,但您使用 chrome-driver 的方式不正确。运行 chrome-driver 后,它将显示它运行的端口,默认情况下是端口 9515。然后在您的代码中您应该使用“usingServer”,

var driver = new webdriver.Builder().
     usingServer('http://localhost:9515').
     withCapabilities(webdriver.Capabilities.chrome()).
     build();

访问 chromedriver。这样chrome-driver就可以正常工作了。

关于javascript - 无法在 javascript 中使用 webdriver 打开 chrome,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30253625/

相关文章:

javascript - 跨源图像加载和操作

javascript - jQuery on Change 引用 this.value 和 this

javascript - 将 JavaScript 附加到 body 标签

javascript - 验证 : Hide a skeleton loader after a element loads

javascript - 防止通过 CSS/JS/等在 Google Chrome 中重新绘制

google-chrome - 通过docker的Selenium python库,Chrome错误无法启动:异常退出

html - 即使在 :avoid; 的情况下,CSS 列也会在 Chrome 中将元素分开

javascript - xpcom数组可以在不同的xul文件中传输吗?

jQuery 单击复选框不会在 Firefox 中检查

javascript - 如何使所有浏览器以相同的行为和外观从相同的 css 呈现