use*_*471 22 selenium zoom selenium-webdriver
如何在selenium web驱动程序中更改页面缩放级别?我试过了:
driver.Keyboard().pressKey(Keys.Control);
driver.Keyboard().pressKey(Keys.Add);
Run Code Online (Sandbox Code Playgroud)
但它不起作用.
Pet*_*ček 26
请注意Selenium假设缩放级别为100%!例如,当缩放级别不同时,IE将拒绝启动(抛出异常),因为元素定位依赖于此,如果您更改了缩放级别,它将在错误的位置单击错误的元素.
您可以使用以下Keys.chord()方法:
WebElement html = driver.findElement(By.tagName("html"));
html.sendKeys(Keys.chord(Keys.CONTROL, Keys.ADD));
Run Code Online (Sandbox Code Playgroud)
谨慎使用,完成后,将缩放重置为100%:
html.sendKeys(Keys.chord(Keys.CONTROL, "0"));
Run Code Online (Sandbox Code Playgroud)
(因为我意识到C#绑定没有这个Keys.chord()方法)
或者,您可以像这样使用高级用户交互API(再次,Java代码,但它应该在C#中使用相同的):
WebElement html = driver.findElement(By.tagName("html"));
new Actions(driver)
.sendKeys(html, Keys.CONTROL, Keys.ADD, Keys.NULL)
.perform();
Run Code Online (Sandbox Code Playgroud)
再次,不要忘记之后重置缩放:
new Actions(driver)
.sendKeys(html, Keys.CONTROL, "0", Keys.NULL)
.perform();
Run Code Online (Sandbox Code Playgroud)
请注意,天真的方法
html.sendKeys(Keys.CONTROL, Keys.ADD);
Run Code Online (Sandbox Code Playgroud)
不起作用,因为Ctrl密钥是在此sendKeys()方法中释放的.的WebElement的sendKeys()是来自不同那个在Actions.因此,Keys.NULL我需要在我的解决方案中使用.
小智 6
以下是使用Java更改缩放级别的两种方法(一种用于Chrome浏览器,另一种用于Firefox):
使用v?e?r?s?i?o?n?Selenium Java Client Driver的?3?。?3?。?1和C?h?r?o?m?e?D?r?i?v?e?r??2?。?2?8,以下工作原理(其中单引号中的数字表示要使用的缩放级别; 1 = 100%,1.5 = 150%等):
JavascriptExecutor executor = (JavascriptExecutor)driver;
executor.executeScript("document.body.style.zoom = '1.5'");
Run Code Online (Sandbox Code Playgroud)
可以使用以下方式修改缩放级别:
1.上述Java客户端驱动程序
2. G?e?c?k?o?D?r?i?v?e?r??v?0?。?1?5?。?0
3.这些类:
java.awt.Robot
java.awt.event.KeyEvent
首先,实例化Robot类:
Robot robot = new Robot();
Run Code Online (Sandbox Code Playgroud)
此代码导致缩放级别降低:
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_MINUS);
robot.keyRelease(KeyEvent.VK_CONTROL);
robot.keyRelease(KeyEvent.VK_MINUS);
Run Code Online (Sandbox Code Playgroud)
此代码使缩放级别增加:
robot.keyPress(KeyEvent.VK_CONTROL);
robot.keyPress(KeyEvent.VK_EQUALS);
robot.keyRelease(KeyEvent.VK_CONTROL);
robot.keyRelease(KeyEvent.VK_EQUALS);
Run Code Online (Sandbox Code Playgroud)
小智 6
通过 JavaScript 执行更改缩放级别是可以的,但它仅适用于显示的第一页。后续页面将返回到 100% 缩放级别。到目前为止,我发现的最佳解决方案是设置 Chrome 选项的设备比例因子。
ChromeOptions options = new ChromeOptions();
options.addArguments("force-device-scale-factor=0.75");
options.addArguments("high-dpi-support=0.75");
WebDriver driver = new ChromeDriver(options);
Run Code Online (Sandbox Code Playgroud)
Python方法对我有用,除了您必须指定缩放级别:
driver.execute_script("document.body.style.zoom='zoom %'")
Run Code Online (Sandbox Code Playgroud)
拥有'zoom%'=您想要的缩放级别。(例如“ 67%”)。这适用于Chromedriver,它似乎不接受send_keys命令。
| 归档时间: |
|
| 查看次数: |
66696 次 |
| 最近记录: |