但是在Jenkins中,浏览器的分辨率为1044x784。因此,我的脚本无法在Jenkins中使用x-path找到元素。
我尝试通过在初始化驱动程序时设置窗口大小,然后将窗口大小增加到1048x788 px,然后不再增加。
关于此问题的任何解决方法有什么建议吗?
环境:Windows 7,Jenkins版本(1.596),浏览器:Chrome
#1 楼
我和我的团队遇到了相同的问题。在我们的例子中,我们正在测试的Web应用程序具有响应视图,当浏览器窗口缩小到如此小的尺寸时(例如在Jenkins上运行时),导致选择器无效。以下是我们用来纠正此问题的步骤。请注意,我们的Jenkins实例正在安装Windows的VM上运行。创建一个新的Jenkins节点,其启动方法为“通过Java Web Start启动代理”
在jenkins节点列表中,单击该节点标题并获取其Java Web Start启动命令。到VM,打开一个终端并运行该命令。
将jenkins作业配置为仅在该节点上运行。在作业配置页面中:
最终说明
我们选择让javaws命令在每次启动VM时运行(通过Windows Task Scheduler)
请注意我们如何不指定要作为Windows服务运行的节点。在我们的测试中,我们发现将节点作为Windows服务运行会导致分辨率问题持续存在。
此方法使用VM的分辨率强制作业直接在VM上运行。换句话说,登录虚拟机时看到的分辨率将是作业运行的分辨率。该解决方案的副作用是作业将不再在后台运行。如果您在运行自动化的情况下登录VM,您将能够看到它的作用。但找不到解决分辨率问题的方法。如果某人因此问题而到达此线程并被迫将其节点作为服务运行,则以下情况可能会对他们有所帮助(这对我们而言并非如此)。 Windows注册表项NoInteractiveServices设置为0
在Windows服务中,禁用交互式服务检测
在Windows的服务设置中,启用“允许桌面交互”
#2 楼
我曾经遇到过类似的问题。在模式窗口上启用了滚动,因此我向下滚动然后尝试访问该元素。对我有用。评论
谢谢@Sanchita,当我要使用xpath定位器获取元素的文本时,我的问题没有得到解决,正如您建议的bcoz。 xpath值正在更改,因此我的脚本在jenkins浏览器中失败。如果我根据jenkins浏览器更改xpath,则i9t将在本地浏览器中失败。
– QAMember
16年2月2日在10:02
我不建议。我的情况就是这样@ user246
– QAMember
16-2-19在7:51
抱歉,评论是针对Op的,我在错误的地方输入了它。
–user246
16-2-19在13:17
在开始时最大化浏览器也可能有所帮助。
– Masood ghz
16年4月4日在10:15
#3 楼
我认为您应该使用Jenkins浏览器分辨率(1044x784)提交代码,以解决Jenkins上的问题。#4 楼
我只是简单地默认了selenium驱动程序,以打开适用于两台计算机的浏览器分辨率,甚至将xpath切换为css选择器。使我更容易找到元素。#5 楼
在测试运行期间,设置窗口大小。driver.manage().window().setSize(new Dimension(1044,784));
您也可以尝试使其变大,在Jenkins运行时,它也可能使窗口变大,而不是显示视口。
#6 楼
您可以尝试这样的操作:public void clickElementJS(String path, String formName){
String xpathValue = cfg.config(path, formName);
element = GenericExecutors.driver.findElement(By.xpath(xpathValue));
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("arguments[0].scrollIntoView(true);",element);
element.click();
}
评论
根据msdn.microsoft.com/en-us/library/windows/desktop/…的说法,从Windows Vista服务开始无法与用户进行交互。
–尼尔
17年9月12日在6:45