kzen.dev
  • Pertanyaan
  • Tag
  • Pengguna
Notifikasi
Imbalan
Registrasi
Setelah Anda mendaftar, Anda akan diberitahu tentang balasan dan komentar untuk pertanyaan Anda.
Gabung
Jika Anda sudah memiliki akun, masuk untuk memeriksa pemberitahuan baru.
Akan ada hadiah untuk pertanyaan, jawaban, dan komentar tambahan.
Lebih
Sumber
Sunting
 Wel
Wel
Question

apa arti kesalahan ini: referensi elemen basi: elemen tidak melekat pada dokumen halaman?

Dalam aplikasi C # saya untuk menggunakan driver web selenium saya mendapatkan kesalahan ini:

OpenQA.Selenium.StaleElementReferenceException: elemen basi referensi: elemen tidak melekat pada dokumen halaman

dalam kode ini:

IWebElement e = driver.FindElement(By.XPath(link_click), 10);
e.Click();

baris kesalahan ada di e.Click() tetapi ini adalah prosedur yang berhasil dieksekusi di tautan yang sama yang ditentukan oleh XPath sebelumnya tetapi gagal pada percobaan terakhir! jadi apa arti kesalahan ini dan bagaimana cara memperbaikinya?

9 2017-04-21T13:09:25+00:00 3
Pemrograman
c#
selenium
selenium-webdriver
Solution / Answer
adee alamsz
adee alamsz
21 April 2017 в 1:21
2017-04-21T13:21:06+00:00
Lebih
Sumber
Sunting
#33323633

Ini berarti bahwa elemen berubah di halaman, atau elemen dihapus, referensi lengkap di tautan ini http://www.seleniumhq.org/exceptions/stale_element_reference.jsp

Salah satu cara untuk mengatasi hal ini, Anda bisa meletakkan retry, mungkin sesuatu seperti

bool staleElement = true; 
while(staleElement){
  try{
     driver.FindElement(By.XPath(link_click), 10).Click();
     staleElement = false;

  } catch(StaleElementReferenceException e){
    staleElement = true;
  }
}
12
0
Kecerdasan buatan untuk mengurai produk dari halaman mana pun
productapi.dev
 Naveen
Naveen
24 Maret 2018 в 3:02
2018-03-24T15:02:43+00:00
Lebih
Sumber
Sunting
#33323634

Saya mengalami masalah yang sama ketika saya melakukan pemilihan tanggal, dengan salah satu situs. Saya harus mendapatkan semua tombol yang aktif (atau diaktifkan) dari pemilih tanggal dan mengklik masing-masing tombol tersebut. Ketika saya mengulang-ulang elemen-elemen itu menjadi basi. Saya akan mengulangi kembali menyimpan daftar lain. Hal ini mungkin terjadi karena setelah List mendapat selenium tidak merujuknya kembali. Di bawah ini adalah kode yang diperbaiki

@Test
public void datePickerTest() throws InterruptedException{
    driver.get(baseURL);
    // click on flights tab 
    genericMethod.getElement("tab-flight-tab-hp", "id").click();

    // click departing date, such that the date picker is loaded  in the dom 
    genericMethod.getElement("flight-departing-hp-flight", "id").click(); 
    Thread.sleep(700);

    // pass the collected xpath where you can find all the dates which are enabled 
    String xpath=".//*[@id='flight-departing-wrapper-hp-flight']/div/div/div[2]/table/tbody/tr/td/button[not(@disabled)]";
    List<WebElement> activeDatesWebElement = genericMethod.getElements("xpath", xpath); 

    System.out.println("Number of Active Dates " + activeDatesWebElement.size());

    // work around for an element when it is found stale 
    List<String> activeDateListAsString = new ArrayList<String>();

    for(WebElement temp : activeDatesWebElement){
        activeDateListAsString.add(temp.getText());
    }

    // iterate all element in the list received, which is kept in list 
    for(String temp : activeDateListAsString){
        genericMethod.getElement("flight-departing-hp-flight", "id").click();

        Thread.sleep(500);

        String selectDateXpath=".//*[@id='flight-departing-wrapper-hp-flight']"
                + "/div/div/div[2]/table/tbody/tr/td/button[text()='"
                +temp+"']";

        genericMethod.getElement(selectDateXpath, "xpath").click(); 
        Thread.sleep(500);

    }

}
1
0
Kecerdasan buatan untuk mengurai produk dari halaman mana pun
productapi.dev
 ozanmut
ozanmut
5 November 2018 в 10:49
2018-11-05T22:49:59+00:00
Lebih
Sumber
Sunting
#33323635

Anda mendapatkan kesalahan ini jika elemen tidak ada saat memuat halaman. Anda harus menunggu sampai elemen siap:

public static Func<IWebDriver, IWebElement> Condition(By locator)
{
    return (driver) => {
        var element = driver.FindElements(locator).FirstOrDefault();
        return element != null && element.Displayed && element.Enabled ? element : null;
    };
}

var wait = new WebDriverWait(driver, TimeSpan.FromSeconds(30));
var elementU = wait.Until(Condition(By.Name("j_username")));
elementU.Click();
0
0
Tambahkan pertanyaan
Kategori
Semua
Teknologi
Budaya / Rekreasi
Kehidupan / Seni
Ilmu Pengetahuan
Profesional
Bisnis
Pengguna
Semua
Baru
Populer
1
Анна Литвиненко
Terdaftar 1 hari yang lalu
2
Inessa bu
Terdaftar 1 bulan yang lalu
3
Denis Babushkin
Terdaftar 1 bulan yang lalu
4
asakuno asakuno
Terdaftar 1 bulan yang lalu
5
aldo salerno
Terdaftar 1 bulan yang lalu
Kecerdasan buatan untuk mengurai produk dari halaman mana pun
productapi.dev
ES
ID
JA
© kzen.dev 2023
Sumber
stackoverflow.com
di bawah lisensi cc by-sa 3.0 dengan atribusi