2016-06-20 11 views
0

アクションクラスでセレンを使用して新しいウィンドウでhrefコンテンツを開こうとしていますが、動作しません。どんな助けもありがとうございます。ハイパーリンクを右クリックし、新しいウィンドウでリンクのコンテンツを開きます

私は以下のようにしてみセレン2.47.1およびクロムドライバ(ブラウザのバージョン52)

WebElement abc = driver.findElement(link); 

    Actions builder = new Actions(driver); 
    builder.contextClick(abc).sendKeys(Keys.ARROW_DOWN).sendKeys(Keys.ARROW_DOWN).sendKeys(Keys.ENTER).build().perform(); 

     //builder.contextClick(abc).build().perform(); 
     //Actions click=builder.moveToElement(abc).contextClick(); 
     //click = click.sendKeys(Keys.ARROW_DOWN); 
     //click.moveByOffset(10,10).click().build().perform(); 
     //builder.keyDown(Keys.SHIFT).click(abc).keyUp(Keys.SHIFT).build().perform(); 

答えて

0

を使用しています: -

builder.keyDown(Keys.SHIFT).click(abc).keyUp(Keys.SHIFT).build().perform(); 

はそれが仕事を願っています... :)

+0

それは私のためには機能しませんでしたが、ロボットクラスで動作します。ご協力いただきありがとうございます。 – vanig

+0

あなたはそれを試しましたか?..私の場合はクロームで働いているので... –

+1

これを達成するためには、「ロボット」を使うのは良い方法ではありません... –

0

これはRobotクラスで動作しています。

ここに私のコードです。

0

あなたは今ではRobotクラスを使用しています。私はこれを使わないことを強く勧めます。これは、一度にたくさんのテストを実行したいときには限界があります。

新しいwindowのためにこれを試してみてください:

WebElement abc = driver.findElement(link); 
abc.sendKeys(Keys.SHIFT, Keys.RETURN); 

または代わりにあなたの代わりに、まったく新しいwindowの新しいtabを開くことができます:

WebElement abc = driver.findElement(link); 
abc.sendKeys(Keys.CONTROL, Keys.RETURN); 

Keys.CONTROLを置き換えてくださいKeys.COMMAND on Mac

+0

OPは新しいタブではなく新しいウィンドウで... –

+0

@SaurabhGaurあなたが正しいです、私はそれを誤解しました。回答を固定 – RemcoW

+0

@RemcoW、Keys.SHIFT + Keys.Returnはコンパイルエラーを投げます(演算子+は引数型org.openqa.selenium.Keys、org.openqa.selenium.Keysに対して未定義です)。何かご意見は? – vanig

関連する問題