from selenium import webdriver
import time
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome(r"C:\Users\m\Desktop\python\selen\chromedriver.exe")
driver.set_page_load_timeout(10)
driver.get("https://google.com")
driver.find_element_by_name("q").send_keys("Automation")
driver.find_element_by_name("btnk").send_keys(keys.ENTER)
time.sleep(4)
driver.quit()
Saya mencoba kode sederhana ini untuk membuka halaman google dan mencari kata "automation", tetapi saya mendapatkan hasil ini dan program berhenti berjalan di baris ini: driver.find_element_by_name("btnk").send_keys(keys.ENTER)
Traceback (most recent call last):
File "C:\Users\m\Desktop\python\selen\auto.py", line 9, in <module>
driver.find_element_by_name("btnk").send_keys(keys.ENTER)
File "C:\ProgramData\Anaconda3\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 496, in find_element_by_name
return self.find_element(by=By.NAME, value=name)
File "C:\ProgramData\Anaconda3\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 978, in find_element
'value': value})['value']
File "C:\ProgramData\Anaconda3\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "C:\ProgramData\Anaconda3\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"name","selector":"btnk"}
(Session info: chrome=74.0.3729.131)
(Driver info: chromedriver=74.0.3729.6 (255758eccf3d244491b8a1317aa76e1ce10d57e9-refs/branch-heads/3729@{#29}),platform=Windows NT 10.0.17134 x86_64)
Apa masalahnya?
Silakan periksa 'find_element_by_name' untuk tombol pencarian atau gunakan xpath.
Saya menjalankan skrip di java. Semoga ini bisa membantu Anda ...
Dan untuk mencari xpath gunakan selenium IDE .

dan kode di bawah ini: -
WebDriver driver =new FirefoxDriver();
driver.get("https://www.google.com");
WebDriverWait wait = new WebDriverWait (driver, 30);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//input[@name='q']")));
WebElement ele = driver.findElement(By.xpath("//input[@name='q']"));
ele.sendKeys("q");
driver.findElement(By.xpath("(//input[@name='btnK'])[2]")).sendKeys(Keys.ENTER);
Dan satu saran jatuhkan 'thread.sleep' , karena itu menghentikan program untuk waktu mention.
Thread.sleep () : Dalam kode tidur akan selalu menunggu detik yang disebutkan di samping tanda kurung bahkan jika halaman kerja siap setelah 1 detik. Jadi ini bisa memperlambat tes.
Penantian eksplisit : Penantian eksplisit adalah semacam menunggu kondisi tertentu terjadi sebelum melanjutkan lebih jauh dalam kode.
Penantian implisit : Penantian implisit adalah untuk memberi tahu WebDriver agar melakukan polling DOM selama jangka waktu tertentu saat mencoba menemukan elemen atau elemen jika tidak segera tersedia. Pengaturan default adalah 0
Apakah praktik yang baik menggunakan Thread.sleep saat melakukan Tes selenium?
Diedit:
lihat juga ini https://stackoverflow.com/a/56078618/4513879 menjawab.
Element is not reachable by keyboarddengan kata biasa berarti elemen tidak dapat dijangkau menggunakan keyboard, yang berarti Anda tidak akan berinteraksi secara fisik dengannya. hindari menggunakan klik JS. Seorang pengguna tidak dapat mengklik elemen yang tidak terlihat atau tertutup atau keluar dari layar, dll. Selenium dirancang untuk bertindak seperti pengguna dan melempar kesalahan ketika pengguna tidak dapat mengklik elemen.
Untuk informasi lebih lanjut silahkan melalui https://stackoverflow.com/a/49872160/4513879 jawaban ini.
Kode yang Diperbarui: -
WebDriver driver =new FirefoxDriver();
driver.get("https://www.google.com");
WebDriverWait wait = new WebDriverWait (driver, 30);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//input[@name='q']")));
WebElement ele = driver.findElement(By.xpath("//input[@name='q']"));
ele.sendKeys("q");
new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.name("btnK"))).click();
dalam kode di atas saya menambahkan new WebDriverWait(driver,20).until(ExpectedConditions.elementToBeClickable(By.name("btnK"))).click();baris ini.
K harus menjadi modal. Peka huruf besar / kecil
Ubah ini:
driver.find_element_by_name("btnk").send_keys(keys.ENTER)
Untuk ini:
driver.find_element_by_name("btnK").send_keys(keys.ENTER)
Beberapa pengamatan lain ... Tampaknya ada dua elemen dengan atribut yang sama persis, jadi Anda mungkin masih mengalami masalah dengan ini.
Sebagai solusi yang mungkin untuk masalah itu, Anda dapat mencoba ini daripada find_element_by_name:
from selenium.webdriver.support import expected_conditions as EC
EC.element_to_be_clickable(By.name("btnK"))).click()
Juga, dengan tombol, saya pikir Anda akan menginginkannya click, bukansend_keys
Bersulang :)
Jana Duggar terbuka tentang pencarian cintanya. Inilah semua yang dia katakan tentang topik dan jendela lima tahun untuk menikah.
Bintang 'Outlander' Sam Heughan baru-baru ini mengungkapkan apa yang akan dia ambil dari lokasi syuting untuk mengingat Jamie Fraser, peran yang membuatnya menjadi bintang.
'She Loves You' ditulis dalam satu jam, direkam dalam sehari, dan merupakan lagu The Beatles dengan salah satu penampilan terbaik dalam karir mereka.
Dolly Parton dan Nenek Bessie memiliki hubungan khusus. Nenek Parton sakit parah, tapi itu tidak menghentikan Dolly untuk mengerjainya.
Anda mungkin mengira kayu ek atau hickory kuat, tetapi jika berbicara tentang kayu terkeras di dunia, keduanya tidak ada yang mendekati.
Lautan memang penuh keindahan, tetapi juga menyembunyikan beberapa makhluk laut paling menakutkan di planet ini. Banyak dari hewan ini bersembunyi jauh di bawah permukaan laut, di dunia laut dalam yang gelap dan bertekanan tinggi.
Jika Anda sedang melawan monster musuh atau bersiap untuk skenario PvP, mengetahui pesona pedang terbaik di Minecraft dapat memberi Anda keuntungan besar. Memikat pedang memungkinkan Anda menghasilkan lebih banyak kerusakan, meningkatkan jumlah monster yang dijatuhkan, dan memperpanjang daya tahan pedang Anda.
Ketika orang berbicara tentang negara sosialis, mereka sering membayangkan kendali penuh pemerintah dan tanpa kepemilikan swasta. Namun dalam praktiknya, ekonomi sosialis sangat bervariasi.
“Children” merilis cameo dengan nama besar dan beberapa berita buruk
RAV4 ini diklaim dalam kondisi sangat baik dan siap digunakan untuk permainan kursi musik.
Rekaman drone memperlihatkan petugas pemadam kebakaran yang tampak kesulitan memadamkan api.
Eyes of Wakanda terhubung langsung dengan MCU, ditambah pembaruan tentang X-Men '97, What If..., Daredevil, dan banyak lagi.
'Laguna Beach' mengikuti kehidupan siswa sekolah menengah Lauren Conrad, Kristin Cavallari, Stephen Colletti, dan banyak lagi pada pertengahan tahun 2000-an. Berikut ini adalah tempat tinggal para pemeran serial realitas MTV tersebut sekarang.
Ava Gardner pernah menikah dengan Mickey Rooney dan Frank Sintra, dan ia pernah berpacaran dengan beberapa bintang Hollywood lainnya. Berikut ini kilas balik riwayat berpacaran Ava Gardner.
John Cleese menikahi istrinya, Jennifer Wade, pada tahun 2012. Berikut semua yang perlu Anda ketahui tentang istri John Cleese, Jennifer Wade.
Berikut semua yang perlu Anda ketahui tentang Francie Frane, mantan peternak yang menikah dengan Dog the Bounty Hunter.
Itu mengejutkan saya Tiba-tiba seperti yang sering terjadi Ini di tengah jalan lagi <Tidak, bukan yang di pasifik Anda merah marun, yang di karnaval> Setiap berita utama keras…..
Di tahun 2022, dengan dirilisnya GPT-3, kemampuan menulis sepertinya menjadi kurang penting. Dengan AI, orang dengan tulisan yang buruk juga dapat menghasilkan staf yang berkualitas.
Di dunia yang serba cepat dan kompetitif saat ini, karier seseorang memainkan peran penting dalam pertumbuhan pribadi, stabilitas keuangan, dan kepuasan hidup secara keseluruhan. Namun, banyak orang menemukan diri mereka terjebak dalam siklus stagnasi dan ketidakpuasan tanpa henti, secara bertahap menyia-nyiakan kehidupan profesional mereka.
Minggu lalu saya melihat siaran pers, dikirim melalui PressGazette (situs web berita media Inggris). Artikel tersebut mengumumkan bahwa Acast, perusahaan hosting dan periklanan podcast Scandi, akan memimpin konsorsium penerbit "mungkin yang paling berpengaruh" dalam podcasting.