Tidak dapat menemukan elemen menggunakan Selenium, kode yang dikembangkan di MVC

melampirkan kodeSaya tidak dapat menemukan elemen menggunakan Xpath. Kode ini dikembangkan dalam kerangka MVC, kode tersebut berasal dari tampilan parsial. silakan periksa gambar terlampir dan bantuan

<html class=" js flexbox no-touch backgroundsize boxshadow  
csstransforms" style="">
 <head>
<body>
<header class="header header-waterfall affix-top">
<div class="menu-wrapper pull-left" role="navigation">
<ul class="nav nav1" role="menubar">
<li role="menuitem">
<a href="/id#">
<span class="icon icon-lg">menu</span>
</a>
<div id="menu_nav" class="mega-menu" role="menu" aria-hidden="true" 
style="">
</li>
</ul>
</div>
<div class="col-lg-3 col-md-3 col-sm-8 col-xs-8 pull-left">
<ul class="nav nav-list pull-right" style="padding: 6px 0px; cursor: 
pointer;">
</header>

Mencoba dengan peran span, li dll. Tapi, paling sering saya mendapat kesalahan seperti, tidak berinteraksi.

GAGAL: testCheckFarmerData org.openqa.selenium.NoSuchElementException: Tidak dapat menemukan elemen: {"method":"xpath","selector":"//ul[@class= 'nav nav 1']/li/a/span" } Durasi atau batas waktu perintah: 30,13 detik


person Suneel Kuppili    schedule 19.07.2016    source sumber
comment
Bagikan kode Selenium yang telah Anda coba....   -  person Saurabh Gaur    schedule 19.07.2016
comment
dan apa yang dimaksud dengan tidak dapat menemukan elemennya??..apakah ada pengecualian?? tolong bagikan juga   -  person Saurabh Gaur    schedule 19.07.2016
comment
silakan temukan gambar terlampir untuk kode Selenium. Mencoba dengan span, peran li, dll. Tapi, paling sering saya mendapat kesalahan seperti, tidak berinteraksi. GAGAL: testCheckFarmerData org.openqa.selenium.NoSuchElementException: Tidak dapat menemukan elemen: {method:xpath,selector://ul[@class= 'nav nav 1']/li/a/span} Durasi atau batas waktu perintah: 30,13 detik   -  person Suneel Kuppili    schedule 19.07.2016
comment
mencoba dengan segala cara dan mendekati pengembang, katanya, itu dikembangkan dalam kerangka MVC dan menu atas ditarik dari Partial-view   -  person Suneel Kuppili    schedule 19.07.2016


Jawaban (1)


Anda harus mencoba menggunakan WebDriverWait seperti di bawah ini :-

WebDriverWait wait = new WebDriverWait(driver, 10);
el = wait.until(ExpectedConditions.elementToBeClickable(By.linkText("menu")));
el.click();

Diedit1 :- Anda dapat melakukan click dengan menggunakan JavascriptExecutor seperti di bawah ini :-

WebDriverWait wait = new WebDriverWait(driver, 10);
el = wait.until(ExpectedConditions.visibilityOfElementLocated(By.linkText("menu")));
((JavascriptExecutor)driver).executeScript("arguments[0].click()", el);

Diedit2 :-

WebDriverWait wait = new WebDriverWait(driver, 10); 
el = wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//ul[@cla‌​ss='nav nav1']/descendant::span[contains(.,'menu')]")));
((JavascriptExecutor)driver).executeScript("arguments[0].click()", el);

Semoga membantu.. :)

person Saurabh Gaur    schedule 19.07.2016
comment
Luar biasa! Akhirnya berhasil. Berjuang dari 2 hari - person Suneel Kuppili; 19.07.2016
comment
itu tidak berfungsi di FF juga di chrome beberapa kali. Ini hanya berfungsi di IE - person Suneel Kuppili; 19.07.2016
comment
@SuneelKuppili Apa maksudnya kadang tidak berfungsi di FF juga di chrome?? apakah ada pengecualian?? - person Saurabh Gaur; 19.07.2016
comment
@SuneelKuppili Jika ada timeOut, Anda perlu menambah waktu dari 10 detik menjadi lebih.. - person Saurabh Gaur; 19.07.2016
comment
Sekali lagi saya mendapatkan kesalahan yang sama, saya telah mencoba memberikan peningkatan waktu hingga 100 ms. Ini kesalahannya: GAGAL: testCheckFarmerData org.openqa.selenium.ElementNotVisibleException: elemen tidak terlihat (Info sesi: chrome=51.0.2704.103) (Info driver: chromedriver=2.22.397933 (1cab651507b88dec79b2b2a22d1943c01833cc1b),platform=Windows NT 6.1.7601 SP1 x86_64) (PERINGATAN: Server tidak memberikan informasi pelacakan tumpukan apa pun) Durasi atau batas waktu perintah: 20 milidetik - person Suneel Kuppili; 20.07.2016
comment
Ini adalah kesalahan dengan driver FF: GAGAL: testCheckFarmerData org.openqa.selenium.ElementNotVisibleException: Elemen saat ini tidak terlihat sehingga tidak dapat berinteraksi dengan durasi atau batas waktu Perintah: 34 milidetik - person Suneel Kuppili; 20.07.2016
comment
@SuneelKuppili jika Anda memeriksa kondisi visibilitas, kesalahan ini tidak akan pernah muncul..karena kode yang saya berikan selalu akan menampilkan TimeoutException jika kondisi visibilitas elemen tidak benar.. mungkin Anda akan menemukan elemen sebagai driver.findElement(By.linkText("menu")); itulah mengapa Anda mendapatkan pengecualian. .coba dengan WebDriverWait seperti yang disediakan.. - person Saurabh Gaur; 20.07.2016
comment
Saya hanya menggunakan kode Anda. Saya belum mengubahnya, saya baru saja mengubah ke Xpath, bukan LinkText seperti - WebDriverWait wait = new WebDriverWait(driver, 100); WebElement el = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath(html/body/header/div[1]/ul/li/a/span))); el.klik(); - person Suneel Kuppili; 20.07.2016
comment
@SuneelKuppili Saya mengerti.. Anda harus mencoba ExpectedConditions.elementToBeClickable daripada ExpectedConditions.visibilityOfElementLocated karena elementToBeClickable memeriksa visibilitas dan mengaktifkan,...dan jika tidak berhasil.. coba gunakan JavascriptExecutor untuk melakukan klik..lihat jawaban yang diperbarui...semoga membantu.. :) - person Saurabh Gaur; 20.07.2016
comment
Maaf, tidak berfungsi. meningkatkan penundaan juga menjadi 60. Tidak yakin dengan perilaku aplikasi. Kemarin berfungsi di IE, hari ini tidak berfungsi. Selain itu, chrome berfungsi kemarin dengan tidak konsisten. Hari ini tadinya berfungsi dini hari, sekarang tidak berfungsi. - person Suneel Kuppili; 20.07.2016
comment
Memulai ChromeDriver 2.22.397933 (1cab651507b88dec79b2b2a22d1943c01833cc1b) pada port 47274 Hanya koneksi lokal yang diperbolehkan. GAGAL: testCheckFarmerData org.openqa.selenium.ElementNotVisibleException: elemen tidak terlihat (Info sesi: chrome=51.0.2704.103) - person Suneel Kuppili; 20.07.2016
comment
@SuneelKuppili bisakah Anda memberi tahu saya kapan kesalahan ini terjadi saat elemen pencarian atau saat mengklik?? - person Saurabh Gaur; 20.07.2016
comment
Dan apakah Anda mencoba By.linkText atau By.XPath untuk mencari lokasinya?? - person Saurabh Gaur; 20.07.2016
comment
temukan elemen. karena elemennya tidak terlihat. Jika elemen ditemukan dapat diklik. - person Suneel Kuppili; 20.07.2016
comment
@SuneelKuppili Ok sekali gunakan ExpectedConditions.presenceOfAllElementsLocatedBy dan coba klik menggunakan JavascriptExecutor sebagai WebDriverWait wait = new WebDriverWait(driver, 10); el = wait.until(ExpectedConditions.presenceOfAllElementsLocatedBy(By.xpath("//ul[@class='nav nav1']/descendant::span[contains(.,'menu')]"))); ((JavascriptExecutor)driver).executeScript("arguments[0].click()", el); dan beri tahu saya.. - person Saurabh Gaur; 20.07.2016
comment
Tidak dapat menyimpan dengan kode di atas. mengatakan Cp1252 tidak dapat dipetakan. Mungkin karena :: - person Suneel Kuppili; 20.07.2016
comment
Tapi, jalankan tesnya. Itu gagal. Katanya, xpath tidak valid. SyntaxError: Gagal menjalankan 'evaluasi' pada 'Dokumen': String '//ul[@cla??ss='nav nav1']/descendant::span[contains(.,'menu')]' bukan a ekspresi XPath yang valid. (Info sesi: chrome=51.0.2704.103) (Info driver: chromedriver=2.22.397933 (1cab651507b88dec79b2b2a22d1943c01833cc1b),platform=Windows NT 6.1.7601 SP1 x86_64) (PERINGATAN: Server tidak memberikan informasi stacktrace apa pun) Durasi perintah atau batas waktu: 16 milidetik - person Suneel Kuppili; 20.07.2016
comment
@SuneelKuppili lihat pembaruan edited2..gunakan... pengecualian Anda terjadi karena '' Anda menyediakan hal yang sama baik di dalam maupun di luar xpath.. coba dengan edited2 jawab dan beri tahu saya - person Saurabh Gaur; 20.07.2016
comment
Tidak, saya sudah mencoba dengan 60 juga. GAGAL: testCheckFarmerData org.openqa.selenium.TimeoutException: Waktu habis setelah 60 detik menunggu kehadiran elemen yang terletak oleh: By.xpath: //ul[@cla??ss='nav nav1']/descendant::span[contains (.,'menu')] - person Suneel Kuppili; 20.07.2016
comment
@SuneelKuppiliis ada rentang dengan teks menu di halaman Anda?? - person Saurabh Gaur; 20.07.2016
comment
Tidak ada rentang lain dengan Menu - person Suneel Kuppili; 20.07.2016
comment
@SuneelKuppili Menu atau menu?? - person Saurabh Gaur; 20.07.2016
comment
@SuneelKuppili saat Anda memposting pengecualian mengatakan Waktu habis setelah 60 detik menunggu kehadiran elemen yang terletak oleh: By.xpath: //ul[@cla??ss='nav nav1']/descendant::span[contains(.,' menu')] sedangkan xpath yang benar adalah //ul[@class='nav nav1']/descendant::span[contains(.,'menu')]....mengapa menambahkan ?? dengan kelas...tolong periksa - person Saurabh Gaur; 20.07.2016