2017-09-25 146 views
-2

私の目的は、エレメネットのリストを作成し、それをクリックすることです。最初の反復ループは完全に機能し、最初のリンクを開きます。その後、それは失敗しました。要素がDOMに添付されていません

私のコードは次のとおりです。

hrefList = driver.find_elements_by_xpath(".//a[contains(text(), 'כרטיס רופא')]") 

    print("length of List is : " + str(len(hrefList))) 

    for href in hrefList: 
     print(href) 
     href.click() 

私は次のエラーメッセージが表示されます:

selenium.common.exceptions.StaleElementReferenceException: 
Message: The element reference of <a> stale: either the element is no longer attached to the DOM or the page has been refreshed 
+0

であるあなたが実現するか、あなたがリンクを新しいページをクリックする場合は、その読み込まれ、何かがページ上で変化し、リンクがページ上に存在しない可能性がありますか?何が事件ですか? –

+0

@KDD Uは???????を試しました – iamsankalp89

答えて

1

要素がDOMに存在しない場合、このエラーが来ます。あなたが解決策を取得します。このコードを試してみてくださいメインページに戻ってくるし、それ

をクリックする必要があり、これは、Javaコード

String URL="https://www.ida.org.il/?pageType=19&langId=1&paramIds=%2Con_321%2Con_322%2Con_354%2Con_355%2Con_320&scope=&parameterSearch="; 
    WebDriver driver=new FirefoxDriver(); 
    driver.get(URL); 
    List<WebElement> links=driver.findElements(By.xpath("//a[contains(@href, 'https://www.ida.org.il/?categoryId=96318&itemId')]")); 
    System.out.println("Total links: "+links.size()); 
    for (int i=0;i<links.size();i++) { 


    links.get(i).click(); 
    System.out.println(i 
      +"Current URL is: "+driver.getCurrentUrl()); 
    driver.navigate().back(); 
    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); 
    links=driver.findElements(By.xpath("//a[contains(@href, 'https://www.ida.org.il/?categoryId=96318&itemId')]")); 
    } 
+0

ありがとうございました。 – iamsankalp89

関連する問題