目的:スクリプトは、ページの存在を一枚ずつのサブリンクをクリックして、検証するどのように手渡しサブリンクへ - 「古くなった要素の参照:要素は、ページの文書に添付されていない」を
シナリオ: Iカテゴリーリンクにマウスホバー - それは、右側にサブカテゴリーリンク(リスト)を表示:私は戻ってホバーを取るよう
- リンク(リスト)が表示されますされていません。
オートメーション: を私が試しましたカテゴリーリンク上でマウスを動かすと!! はカテゴリリンクのXパスをキャプチャしました! マウスオーバーに適用されたアクション! OnマウスホバーOn 0 index(start)でSub linksのxパスをキャプチャしました! "For Each Loop"(For Forループ)を適用して、サブリンクxパスを1つずつキャプチャします。 上記のforループの中で、サブリンクをクリックするために "アクション"を使用しました!!
問題:それはサブクリック数の - 以降の繰り返しでインデックス0のリンク、カテゴリのリンクをマウスでホバーが行われているにもかかわらず、サブリンクをキャッチすることができません...
取得する方法---------------
public static WebElement Add_EditCorpUser(WebDriver driver) throws InterruptedException
{
driver.switchTo().defaultContent();
driver.switchTo().frame(1);
Actions action = new Actions(driver);
element=driver.findElement(By.xpath(".//td[@title='Security Admin']/following::td[1]/span[contains(text(),'Security')]"));
action.moveToElement(element).build().perform();
List<WebElement> arrayList=driver.findElements(By.xpath(".//table[@class='hideHeader']//span[@id='subMenu']//div[@id='i_2sub']//tbody/tr"));
List<String> linksname = new ArrayList<>();
for (WebElement w:arrayList) {
linksname.add(w.getText());
System.out.println("value ---------------- --"+ linksname);
action.moveToElement(w).click().build().perform();
Thread.sleep(10000);
driver.switchTo().defaultContent();
driver.switchTo().frame(1);
action.moveToElement(driver.findElement(By.xpath(".//td[@title='Security Admin']/following::td[1]/span[contains(text(),'Security')]"))).build().perform();
Thread.sleep(10000);
}
:第二、第三........繰り返しでサブリンク..
は、次のコードです-------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------コメントのとおりで修飾コード----------------------
public static WebElement element=null;
public static WebElement Add_EditCorpUser(WebDriver driver) throws InterruptedException
{
driver.switchTo().defaultContent();
driver.switchTo().frame(1);
Actions action = new Actions(driver);
element=driver.findElement(By.xpath(".//td[@title='Security Admin']/following::td[1]/span[contains(text(),'Security')]"));
action.moveToElement(element).build().perform();
List<WebElement> arrayList=driver.findElements(By.xpath(".//table[@class='hideHeader']//span[@id='subMenu']//div[@id='i_2sub']//tbody/tr"));
String[] xpa=new String[arrayList.size()];
for(int i=1;i<arrayList.size();i++)
{
xpa[i]="\".//table[@class='hideHeader']//span[@id='subMenu']//div[@id='i_2sub']//tbody/tr["+i+"]\"";
}
for(String a: xpa)
{
if(a!=null){
System.out.println(a);
action.moveToElement(driver.findElement(By.xpath(a))).click().build().perform();
Thread.sleep(10000);
driver.switchTo().defaultContent();
driver.switchTo().frame(1);
System.out.println("Switched to new frame");
action.moveToElement(element).build().perform();
}
私はサブリンクのxパスを収集し、それらにヒットしようとした新しいコードを書いた:しかし、私はここに直面している---変数 "a"または "xpa"でxpathsを収集した私はどちらかを使用してマウスのホバーにしようとしたか、またはxpaのコードで示されているようにエラーをスロー.....しかし、私はコードを実行するアクションにxpathを置くので、私は格納されたxパスを使用することができません.......私はxのパスを印刷すると、すべては問題ありませんが、私は変数を介して使用しようとすると....エラーは、新しい追加画像ファイル –