Selenium 如何将URL从命令行传递到我的小黄瓜测试中?

Selenium 如何将URL从命令行传递到我的小黄瓜测试中?,selenium,selenium-webdriver,gherkin,webdriver-io,Selenium,Selenium Webdriver,Gherkin,Webdriver Io,我目前正在使用硬编码的urlbrowser.url(“http://www.x.com"); 我通过gherkinstart[url] 有没有一种方法可以让我在命令行中输入任何URL来启动测试,并使其取代我的浏览器.URL调用中的硬编码URL?我正在使用Selenium webdriver和docker执行用小黄瓜编写的测试。很遗憾,简短的回答是否。正如您所指出的,您的URL中有一个硬编码的值 但是,应该有一些简单的解决方法来解决你的问题,并通过一些小的改变来达到你想要的结果 1.由于您使用的是

我目前正在使用硬编码的url
browser.url(“http://www.x.com");

我通过
gherkinstart[url]


有没有一种方法可以让我在命令行中输入任何URL来启动测试,并使其取代我的
浏览器.URL
调用中的硬编码URL?我正在使用Selenium webdriver和docker执行用小黄瓜编写的测试。

很遗憾,简短的回答是否。正如您所指出的,您的URL中有一个硬编码的

但是,应该有一些简单的解决方法来解决你的问题,并通过一些小的改变来达到你想要的结果

1.由于您使用的是WebdriverIO,它基本上是NodeJS的Selenium绑定实现,因此我们实际上可以利用节点内置对象,在我们的例子中是
全局对象

首先,在测试中,继续并替换
browser.URL(“http://www.x.com");带有一个变量,如下所示:
browser.url(myUrl)

然后,在程序头中声明变量:
var myUrl=process.env.URL?
process.env.URL:“http://www.x.com“
。这将告诉Node:“看,如果您设置了这个流程环境变量,然后返回它,否则,只需告诉我您以前拥有的(您的硬编码值)”

最后,当从命令行运行测试时,只需添加具有所需值的变量,如下所示:

$ URL="yourUrlHere" gherkin start
2.由于您使用的是WebdriverIO,我强烈建议您使用他们的完整工具套件来利用更好的测试体验*悲伤地看着未使用的wdio.config.js文件*

因此,我建议您看看他们的,并浏览培训部分。如果你喜欢用小黄瓜,别担心!WebDrivero与黄瓜(以及使用小黄瓜的摩卡咖啡)完美结合

然后,您的问题将通过
wdio.config.js
文件转换为简单的配置更改


让我知道这是否有帮助。我可能会想出一些其他的解决办法。干杯

谢谢你的回答。目前我的工作很忙,但一旦有机会,我会尽快实现这一点,并将结果反馈给您。好的,我可以尝试一下,但这给了我一个
TypeError的错误:http://www.url.com.url 不是函数
。有什么想法吗?我实现了上面所述的一切,然后通过从一个
.URL
中删除
.URL
,然后从另一个
中删除
process.env
,然后从这两个
中删除
process.env
来处理
代码。要么是相同的错误,要么就是超时了