目的:腳本逐個點擊子鏈接和驗證頁面存在如何漢鼎子鏈接 - 「陳舊元素參考:元素沒有被附加到頁面文件」
場景: 當我鼠標懸停到類別鏈接 - 它顯示在右邊的子類別鏈接(列表):
我拿回來懸停 - 鏈接(列表)不會被顯示:
自動化: 我試着鼠標懸停在分類鏈接上! 因此捕獲了類別鏈接的Xpath! 應用於鼠標的動作! 鼠標懸停捕獲0索引(開始)的子鏈接的x路徑! 應用「For Each loop」(前進For循環)逐個捕獲子鏈接x路徑! 在上面的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」中的xpath - 我試圖用鼠標懸停使用或代碼中顯示的xpa,它會引發錯誤.....但是當我把xpath放入動作中時,它會運行代碼,因此我無法使用存儲的x路徑.......當我打印x路徑,一切都很好,但是當我嘗試通過變量使用它....錯誤拋出如新添加的圖像文件中所示 –