51Testing软件测试论坛

标题: 【求助】Linux服务器下PhantomJS找不到元素 [打印本页]

作者: 晴天倒影    时间: 2017-11-2 12:41
标题: 【求助】Linux服务器下PhantomJS找不到元素
框架:Selenium+Java+testNG+Jenkins
背景:Jenkins部署在了Linux环境,在自己本地的Windows环境跑测试程序都没问题问题描述:因为Linux环境不能执行exe,所以直接在服务器上安装了PhantomJS,代码中这样描写的:
DesiredCapabilities caps = new DesiredCapabilities();
((DesiredCapabilities)caps).setJavascriptEnabled(true);
((DesiredCapabilities)caps).setCapability(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY,"/opt/env/phantomjs-2.1.1-linux-x86_64/bin/phantomjs");
driver = new PhantomJSDriver(caps);

但是上传到Git上再用Jenkins来Build的时候,报错了,提示说找不到元素:

[ERROR - 2017-11-02T03:16:02.297Z] WebElementLocator - _handleLocateCommand - Element(s) NOT Found: GAVE UP. Search Stop Time: 1509592562254  phantomjs://platform/console++.js:263 in errororg.apache.maven.surefire.util.SurefireReflectionException: java.lang.reflect.InvocationTargetException; nested exception is java.lang.reflect.InvocationTargetException: nulljava.lang.reflect.InvocationTargetExceptionCaused by: org.openqa.selenium.NoSuchElementException: {"errorMessage":"Unable to find element with name 'login_userName'"}
大家有什么经验来判断这到底是哪里的问题吗?


作者: 本才    时间: 2017-11-2 14:36
本帖最后由 本才 于 2017-11-2 14:37 编辑

从报错信息上看来是找不到 web 元素'login_userName'; 有没有配置路径错误的可能?
作者: 晴天倒影    时间: 2017-11-3 09:45
本才 发表于 2017-11-2 14:36
从报错信息上看来是找不到 web 元素'login_userName'; 有没有配置路径错误的可能?

PhantomJS的路径肯定是对的,不然PhantomJS不能启动起来,元素的位置也肯定是对的,因为在Windows系统中用Firefox或者PhantomJS都可以跑成功,所以我也不太清楚是哪里出了错,是不是调用Linux安装的PhantomJS的话,还得在pom文件中加什么依赖?
作者: 本才    时间: 2017-11-3 14:28
你的 Linux 发行版是啥,CentOS,Ubuntu,SUSE?
作者: 本才    时间: 2017-11-3 14:56
selenium.webdriver.support.wait.WebDriverWait(driver, timeout, poll_frequency=0.5, ignored_exceptions=None) ,将 poll_frequency的值调整一下,试试。参考了https://stackoverflow.com/questi ... -elements-sometimes,这篇技术解决。




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2