SeleniumWebDriverのページコンテンツのズームイン/ズームアウト



Selenium Webdriver Zoom Out Page Content



解決:

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'));

NS #

(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()メソッド。 NSWebElementのsendKeys()はにあるものとは異なります行動。このため、私のソリューションで使用されているKeys.NULLは 必要


ズームレベルを変更する方法は2つあります。 Java (1つはChrome用で、もう1つはFirefox用です):


クロム

Selenium Javaクライアントドライバーのv̲e̲r̲s̲i̲o̲n̲̲3̲.̲3̲.̲1とC̲h̲r̲o̲m̲e̲D̲r̲i̲v̲e̲r̲を使用する場合:

JavascriptExecutor executor =(JavascriptExecutor)driver; executor.executeScript( 'document.body.style.zoom =' 1.5 '');

Firefox

ズームレベルは次のように変更できます。
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クラスをインスタンス化します。

ロボットロボット= new Robot();

このコードにより、ズームレベルは 下降

robot.keyPress(KeyEvent.VK_CONTROL); robot.keyPress(KeyEvent.VK_MINUS); robot.keyRelease(KeyEvent.VK_CONTROL); robot.keyRelease(KeyEvent.VK_MINUS);

このコードにより、ズームレベルは 増加

robot.keyPress(KeyEvent.VK_CONTROL); robot.keyPress(KeyEvent.VK_EQUALS); robot.keyRelease(KeyEvent.VK_CONTROL); robot.keyRelease(KeyEvent.VK_EQUALS); 

ズームレベルを指定する必要があることを除いて、Pythonのアプローチは私のために働いています:

driver.execute_script( 'document.body.style.zoom =' zoom% '')

'zoom%' =必要なズームレベルを設定します。 (例:「67%」)。これは、send_keysコマンドを受け入れないように見えるChromedriverで機能します。