如何在Selenium WebDriver中更改页面缩放级别?我试过了:
driver.Keyboard().pressKey(Keys.Control); driver.Keyboard().pressKey(Keys.Add);
但这是行不通的。
请注意,Selenium假定缩放级别为100%!例如,当缩放级别不同时,IE将拒绝启动(引发异常),因为元素位置取决于此,并且如果更改缩放级别,它将在错误的位置单击错误的元素。
您可以使用以下Keys.chord()方法:
Keys.chord()
WebElement html = driver.findElement(By.tagName("html")); html.sendKeys(Keys.chord(Keys.CONTROL, Keys.ADD));
请谨慎使用,并在完成后将缩放比例重置为100%:
html.sendKeys(Keys.chord(Keys.CONTROL, "0"));
(因为我意识到C#绑定没有该Keys.chord()方法)
或者,您可以像这样使用Advanced User Interactions API(同样,使用Java代码,但在C#中应能正常工作):
WebElement html = driver.findElement(By.tagName("html")); new Actions(driver) .sendKeys(html, Keys.CONTROL, Keys.ADD, Keys.NULL) .perform();
同样,不要忘了之后重设缩放:
new Actions(driver) .sendKeys(html, Keys.CONTROL, "0", Keys.NULL) .perform();
请注意,天真的方法
html.sendKeys(Keys.CONTROL, Keys.ADD);
不起作用 ,因为Ctrl此sendKeys()方法中释放了密钥。的WebElement的sendKeys()是来自不同那个在Actions。因此, 需要Keys.NULL在我的解决方案中 使用 。
Ctrl
sendKeys()
WebElement
Actions
Keys.NULL