プロジェクトでは、オプションを右クリックしてそこから「新しいウィンドウでリンクを開く」を選択したいと考えています。私は以下のセレン - javaコードを書いています。このコードでは、「新しいウィンドウで開くリンク」でクロールしていますが、その後、新しいウィンドウで必要なリンクを開くためにそのオプションをクリックしていません。必要に応じて、コードを直接コピーして貼り付けて、実行フローを視覚化することができます。それはまた右クリックメニューから特定のオプションをクリックしていないSelenium
oAction.moveToElement(env);
oAction.contextClick(env).sendKeys(Keys.ARROW_DOWN).sendKeys(Keys.ARROW_DOWN).sendKeys(Keys.ENTER).build().perform();
に動作しますENTER代わりにクリック使用のHI
package pack_001;
import java.util.Set;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.Keys;
public class mail {
public static WebDriver driver=new FirefoxDriver();
public static void main(String args[])
{
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
driver.get("http://www.tutorialspoint.com/java/");
driver.manage().window().maximize();
WebElement env=driver.findElement(By.linkText("Java - Environment Setup"));
System.out.println("Env point out");
Actions oAction = new Actions(driver);
oAction.moveToElement(env);
oAction.contextClick(env).sendKeys(Keys.ARROW_DOWN).sendKeys(Keys.ARROW_DOWN).click().build().perform(); /* this should click on the option*/
}
}
解決同じ効果を得るために、あなたは新しい 'WebDriver'を作成し、そのリンクにナビゲートすることができます。例: 'driver2.get(env.getAttribute(" href "));' – Titus
この部分を詳しく教えてください。私はリンクのWebElementを「要素」と呼んでいるのですが、新しいウィンドウでどのようにそれを開くことができるのでしょうか。 – RCode
新しいWebDriveを作成する必要がある新しいウィンドウを作成するには、次のようにします: 'WebDriver driver2 = new FirefoxDriver(); '、この新しいウィンドウで' element'リンクを開くには、 'drive2.get(element.getAttribute(" href "));'を実行します。これは 'element'がHTMLの' '要素であれば動作します。また、Firefoxには新しいウィンドウ 'SHIFT + Left Click'でリンクを開くためのショートカットがあります。 – Titus