有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java是使用window()的替代方法。硒含量?

随着最新的Chrome浏览器更新,我们针对移动浏览器的UI测试在针对windows的Chrome浏览器上失败

我一直在使用这个: 驾驶员管理()。window()。设置尺寸(尺寸)

它们失败了,因为UI元素与chrome浏览器的最小宽度不匹配

但该网站只是在chrome浏览器上的实际移动设备上正常加载

在selenium中是否有替代方案覆盖chrome browser设置的默认最小浏览器宽度

司机。管理()。window()。设置尺寸(尺寸)

我试图将浏览器宽度设置为385,但在Windows Chrome上,它会自动重置为540,从而导致验证失败


共 (1) 个答案

  1. # 1 楼答案

    很久以前,我曾使用Selenium/ChromeDriver和Python。希望这仍然适用

    我认为您需要改变一下管理移动测试的方式,而不仅仅是错误的解决方案。我鼓励你检查我的经验是否也适用于你的情况

    在我的例子中,在桌面模式下设置浏览器窗口分辨率对Chrome很有效,但在Chrome移动模式下我遇到了问题。 在移动模式下,我无法使用setSize()设置分辨率,它实际上被忽略,浏览器窗口大小始终是“模拟”手机的屏幕分辨率

    想想看,这是有道理的

    因此,我鼓励您仔细检查/验证您在移动模式下的selenium测试是否有效地改变了浏览器窗口的大小,即,我担心您总是以相同的分辨率进行网页渲染。。。(模拟)移动电话的屏幕分辨率

    因此,在我的代码中,我仅将setSize()代码用于桌面模式操作/测试

    对于Chrome移动模式,my code通过将手机屏幕分辨率更改为(x,y),为每个浏览器窗口分辨率(x,y)创建一个新的ChromeDriver实例;您可以使用ChromeDriver实验选项来实现这一点,代码如下

    屏幕分辨率x,y=8001280的Java代码:

    Map<String, Object> deviceMetrics = new HashMap<>();
    deviceMetrics.put("width", 800);
    deviceMetrics.put("height", 1280);
    deviceMetrics.put("pixelRatio", 1.0);    
    Map<String, Object> mobileEmulation = new HashMap<>();
    mobileEmulation.put("deviceMetrics", deviceMetrics);
    mobileEmulation.put("userAgent", "Mozilla/5.0 (Linux; Android 4.2.1; en-us; Nexus 5 Build/JOP40D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19");
    
    ChromeOptions chromeOptions = new ChromeOptions();
    chromeOptions.setExperimentalOption("mobileEmulation", mobileEmulation);
    WebDriver driver = new ChromeDriver(chromeOptions);
    

    您的代码应该停止驱动程序实例,并为每个测试的分辨率重新创建一个新实例

    我找不到方法在同一个实例上在线执行此操作:-)

    请分享你的发现

    问候

    p.s:我总是使用pixelRatio=1.0,我不记得确切的含义,但我推断这是现代设备最合理的值

    p.s.2:提供的代码是我的Python代码的“映射”,未经测试