除了CSS缩放之外,还有没有其他方法可以使用C#和Selenium来缩小chrome?

时间:2018-12-14 16:29:33

标签: css selenium-webdriver selenium-chromedriver

我使用硒访问网页(角度)。如果我手动以chrome缩小页面,则会显示菜单,并且更易于浏览。我想对硒和c#做同样的事情。很多帖子问类似的问题,但不完全相同。让我解释一下:

  1. css缩放

    ((IJavaScriptExecutor)driver).ExecuteScript("document.body.style.zoom = '70%'");
    

    页面被缩小,但是有角度的网页没有检测到它,隐藏的菜单没有显示,因此对我不利。

  2. 使用按键缩放:

    new Actions(driver).SendKeys(Keys.Control).SendKeys(Keys.Subtract).Perform();
    

    它不会更改我的缩放级别。也不例外,它什么都不做。我尝试了其他SendKeys方法,但没有成功。

  3. 使用镶边设置缩放

    driver.Url = "chrome://settings";
    ((IJavaScriptExecutor)driver).ExecuteScript("chrome.settingsPrivate.setDefaultZoom(0.66);");
    

    这将更改缩放级别,但是在第一行之后,将显示错误消息:“无法从内部尚未提供的内容加载胡椒模块”。 此后,webdriver无法正常工作。例如,单击以前起作用的按钮的代码不再起作用。

有什么新主意吗?

2 个答案:

答案 0 :(得分:0)

我发现由于chromedriver的不足,“ 2。带键缩放”不起作用。参见https://stackoverflow.com/a/43665060/5852947

更重要的是,即使您手动缩小chromedriver也有另一个问题。参见https://bugs.chromium.org/p/chromedriver/issues/detail?id=628

driver.FindElement(...)在缩小时无法正常工作。

答案 1 :(得分:-1)

要缩小显示,可以使用以下解决方案:

sodium_

注意:在测试执行中通过 Selenium 放大/缩小到100%以外的任何值可能会导致不稳定测试。具体来说,Required ConfigurationInternet Explorer Driver部分明确提到:

  

浏览器缩放级别必须设置为 100%,以便可以将本地鼠标事件设置为正确的坐标。