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で機能します。