我在 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/