一尘不染

Selenium WebDriver放大/缩小页面内容

selenium

如何在Selenium WebDriver中更改页面缩放级别?我试过了:

driver.Keyboard().pressKey(Keys.Control);
driver.Keyboard().pressKey(Keys.Add);

但这是行不通的。


阅读 976

收藏
2020-06-26

共1个答案

一尘不染

请注意,Selenium假定缩放级别为100%!例如,当缩放级别不同时,IE将拒绝启动(引发异常),因为元素位置取决于此,并且如果更改缩放级别,它将在错误的位置单击错误的元素。


Java

您可以使用以下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#

(因为我意识到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);

不起作用
,因为CtrlsendKeys()方法中释放了密钥。的WebElementsendKeys()是来自不同那个在Actions。因此,
需要Keys.NULL在我的解决方案中 使用

2020-06-26