【问题标题】:Set zoom level to 100% in Selenium WebDriver when default is not 100当默认值不是 100 时,在 Selenium WebDriver 中将缩放级别设置为 100%
【发布时间】:2017-07-28 12:52:04
【问题描述】:

我在 Java 中遇到了 Selenium WebDriver 的问题,当用户使用不同的默认值时,我无法将 IE 浏览器缩放级别设置为 100%。 Ctrl + 0 不起作用,因为这会将缩放设置为默认值。我已经尝试通过 JavascriptExecutor 设置缩放,如其他帖子中所见。任何帮助将不胜感激。

【问题讨论】:

  • AFAIK,除非Zoom Level 设置为100%,否则 Selenium 无法与Internet Explorer 很好地通信。任何特定的商业案例不能将Zoom Level 设置为100%?谢谢
  • 我将 Selenium 用于 Web 浏览器自动化应用程序,当某些测试用户的默认缩放级别不是 100% 时遇到问题,因此我需要在代码中进行更改。
  • 您能否分享用户必须设置除 100% 以外的缩放级别的特定业务案例(测试案例)?谢谢
  • 可能运行我的应用程序的某些机器只是将缩放级别设置为高于 100%。我宁愿不强迫他们在使用它之前改变它。没有具体的商业案例。
  • 我建议,在您开始 Automated Test Execution 之前,先给自己一些时间来设置和配置 Test Environment。成功的Test Execution Result 很大程度上取决于它。供您参考,here is the link IE 设置指南。

标签: java selenium internet-explorer selenium-iedriver iedriverserver


【解决方案1】:

尝试完全忽略缩放级别。

DesiredCapabilities caps = DesiredCapabilities.internetExplorer(); caps.setCapability("ignoreZoomSetting", true); driver = new InternetExplorerDriver(caps);

您可以在此处查看其他有缩放问题的人:Similar issue

【讨论】:

  • 见上面我的 cmets。
  • 这不起作用,因为当缩放级别为 125% 时,某些元素无法识别。忽略缩放设置可以打开浏览器,但是驱动不能点击很多东西。
  • @jonlip 这是我的担心。
【解决方案2】:

根据我的谷歌搜索,您可以使用注册表设置默认缩放。我自己没有尝试过,但您应该能够获取用户的默认设置,将其更改为 100%(如果还没有的话),进行测试,然后恢复他们的默认设置。

我自己没有尝试过,但看起来很简单。

HKEY_CURRENT_USERS\SOFTWARE\Microsoft\Internet Explorer\Zoom

将 ZoomFactor 设置为所需因子的 1000 倍,例如125% 是 125000

https://support.microsoft.com/en-us/help/2689447/how-to-set-the-zoom-level-in-internet-explorer-9

【讨论】:

    【解决方案3】:

    试试这个,你可以调整返回当前缩放级别的计算,我可能错了

    from selenium import webdriver
    
    driver = webdriver.Chrome(executable_path='C:\\Automation Projects\\Selenium Server\\chromedriver.exe')
    
    driver.get('Https://www.google.com')
    
    zoom_level = driver.execute_script('return (window.outerWidth / window.innerWidth)')
    if zoom_level > 1:
        driver.execute_script("document.body.style.zoom='90%';")
    

    【讨论】:

    • 这给了我一些希望,但没有奏效。页面缩放正在更改,但是浏览器设置中的浏览器缩放仍然显示相同的数字..硒仍然无法识别元素。如果我将浏览缩放设置为 100 并仅运行 document.body.style.zoom='10%',那么它会使页面变小,但代码仍然可以工作。因为即使现在浏览缩放也是 100%。我认为 selenium 不会担心这个文档缩放。
    【解决方案4】:
    JavascriptExecutor js =(JavascriptExecutor)driver;
            js.executeScript("document.body.style.zoom='100%'");
    

    【讨论】:

      【解决方案5】:

      试试下面的代码,它是工作代码

      InternetExplorerOptions capabilities= new InternetExplorerOptions();
                  capabilities.setCapability(InternetExplorerDriver.IGNORE_ZOOM_SETTING, true);
                  System.setProperty("webdriver.ie.driver", Constant.drivers + "\\IEDriverServer.exe");
                  driver = new InternetExplorerDriver(capabilities);
                  driver.manage().window().maximize();
      

      【讨论】:

      • 这只会忽略缩放检查,浏览器会打开但不会识别任何元素
      猜你喜欢
      • 2019-06-14
      • 1970-01-01
      • 2012-03-25
      • 2018-08-20
      • 2017-01-26
      • 2017-10-24
      • 1970-01-01
      • 1970-01-01
      • 2021-04-09
      相关资源
      最近更新 更多