我有一个配置和测试编写,当我通过Selenium网格传递时它们不起作用(但没有工作)。
问题1 :我的测试套件的Jenkins作业从奴隶开始。它是否正确?我应该在主人身上开始吗(我试过并得到了其他问题,但至少我会专注于真正的问题,如果我知道什么是正确的方法)。
问题2 。我在@Before测试中初始化了驱动程序。它是否正确? driver = new RemoteWebDriver(new URL(“http:// ......”),DesiredCapabilities.firefox()); 这是我在不使用网格时初始化firefox驱动程序的地方,它正在工作。
问题3 。我如何告诉Selenium网格为我提供一些日志。平心而论,我不知道我的测试是否试图访问集线器。
最后一个问题是关于我在使用网格时得到的错误(同样,我的所有测试都没有正常工作)。 org.openqa.selenium.WebDriverException:指定的firefox二进制位置不存在或不是真实文件:/ usr / bin / firefox
对于我用Google搜索并尝试过的最后一个错误,有很多解决方案,没有任何运气。作为初学者,我现在怀疑我的配置。
感谢您的时间。
安
答案 0 :(得分:1)
数目:
问题1
在奴隶上运行它不是不正确的。这完全可以接受。
问题2
您可以在任何地方初始化驱动程序。您可以将它放在@Before
,构造函数甚至方法中。这完全取决于哪种方式最适合你。
问题3
我不确定你是否可以使用firefox执行此操作,但使用chromedriver可以传递这样的参数:--verbose --log-path=/tmp/chromedriver.log \$*
最后一个问题
我首先会问你一个问题,我会回答这个问题。您的网格和节点是不同于您的jenkins服务器的服务器?如果是这样,那么这很可能意味着您需要确保您的firefox可执行文件位于/usr/bin/firefox
下。如果是,请确保它们是可执行的!例如:sudo chmod u+x /usr/bin/firefox
此外,您的RemoteWebDriver
初始化已被屏蔽,因此我无法看到,但请确保您拥有网格的网址,其中/wd/hub
已结束在末尾。例如:http://selenium-grid:4444/wd/hub