我是 selenium 的新手并撰寫了一個腳本來登錄,當我運行腳本時出現以下錯誤:-
錯誤:-
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"[id="SignIn Form_email"]"}
腳本:-
url = "https://someurl.com"
driver = webdriver.Chrome(executable_path="C:\CustomDrivers\chromedriver_win32\chromedriver")
driver.get(url)
print(driver.title)
user_id = driver.find_element_by_id("SignIn Form_email")
user_id.send_keys("[email protected]")
user_password = driver.find_element_by_id("SignIn Form_password")
user_password.send_keys("web$$DD")
driver.find_element_by_xpath("//*[@id='SignIn Form']/div[3]/div/div/div/button").click()
print(driver.title)
time.sleep(5)
完整的錯誤跟蹤:-
C:\Users\Lenovo\Desktop\convin\automation_test\logintest.py:6: DeprecationWarning: executable_path has been deprecated, please pass in a Service object
driver = webdriver.Chrome(executable_path="C:\CustomDrivers\chromedriver_win32\chromedriver")
Convin
C:\Users\Lenovo\Desktop\convin\automation_test\logintest.py:9: DeprecationWarning: find_element_by_* commands are deprecated. Please use find_element() instead
user_id = driver.find_element_by_id("SignIn Form_email")
Traceback (most recent call last):
File "C:\Users\Lenovo\Desktop\convin\automation_test\logintest.py", line 9, in <module>
user_id = driver.find_element_by_id("SignIn Form_email")
File "C:\Users\Lenovo\Desktop\convin\automation_test\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 466, in find_element_by_id
return self.find_element(by=By.ID, value=id_)
File "C:\Users\Lenovo\Desktop\convin\automation_test\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 1238, in find_element
return self.execute(Command.FIND_ELEMENT, {
File "C:\Users\Lenovo\Desktop\convin\automation_test\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 418, in execute
self.error_handler.check_response(response)
File "C:\Users\Lenovo\Desktop\convin\automation_test\venv\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 243, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"[id="SignIn Form_email"]"}
(Session info: chrome=95.0.4638.69)
Stacktrace:
Backtrace:
Ordinal0 [0x00780C43 2493507]
Ordinal0 [0x0071A4B1 2073777]
Ordinal0 [0x00622608 1058312]
Ordinal0 [0x0064CAA4 1231524]
Ordinal0 [0x00676C62 1404002]
Ordinal0 [0x0066597A 1333626]
Ordinal0 [0x00675038 1396792]
Ordinal0 [0x0066580B 1333259]
Ordinal0 [0x00642314 1188628]
Ordinal0 [0x0064316F 1192303]
GetHandleVerifier [0x00907BF6 1548950]
GetHandleVerifier [0x009B461C 2256060]
GetHandleVerifier [0x0080C13B 518107]
GetHandleVerifier [0x0080B1E0 514176]
Ordinal0 [0x0071F53D 2094397]
Ordinal0 [0x00723418 2110488]
Ordinal0 [0x00723552 2110802]
Ordinal0 [0x0072CE81 2150017]
BaseThreadInitThunk [0x7602FA29 25]
RtlGetAppContainerNamedObjectPath [0x77467A9E 286]
RtlGetAppContainerNamedObjectPath [0x77467A6E 238]
提前致謝 希望您??能盡快到訪。
uj5u.com熱心網友回復:
HTML 在哪里?沒有它,我們真的幫不了你。
順便說一句,你的user_id和user_password看起來像一個類名,你確定find_element_by_id方法嗎?你不應該用find_element_by_class嗎?
uj5u.com熱心網友回復:
通過看到這個錯誤
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"[id="SignIn Form_email"]"}
你必須確保
- 這
[id="SignIn Form_email"]不是在iframe. - 這
[id="SignIn Form_email"]不是下一個shadow-root. - 您不應該在 selenium 啟動的新選項卡/視窗上。
- 您可能正在嘗試與元素互動,但它尚未完全渲染。
另外,請檢查dev tools(谷歌瀏覽器)我們是否有唯一的條目HTML DOM。
您應該檢查的 xpath :
[id="SignIn Form_email"]
檢查步驟:
Press F12 in Chrome- >去element節- >做一個CTRL F- >再貼上xpath看看,如果你需要的element是越來越強調與1/1匹配的節點。
現在,如果是iframe,請切換到iframe first。
wait = WebDriverWait(driver, 30)
wait.until(EC.frame_to_be_available_and_switch_to_it((By.XPATH, "")))
如果element不是呈現問題,請誘導網路驅動程式等待
wait = WebDriverWait(driver, 30)
wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, "")))
進口:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/363766.html
上一篇:檢查if陳述句中xpath的值
下一篇:從下拉選單中選擇
