Python 尝试定位登录时代码无法在 Selenium 4 上运行

Python code not working on Selenium 4 when trying to target login

一直在尝试使用 Python 创建从 Selenium 到 Linkedin 的登录名 3. 我已经考虑了我认为的更改和弃用。我错过了什么。这应该很简单。抱歉,如果我现在是代码盲,已经过了 5 个小时。除登录外所有工作。这是我的代码块:

import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By

service = Service(r"C:\Users\stuar\PycharmProject\pythonProject1\chromedriver.exe")
driver = webdriver.Chrome(service= service)
driver.get("https://gb.linkedin.com/")
time.sleep(3)

email = "myrealemail@email.com"
password = "somepass123 "

driver.find_element(By.ID, "element_id").send_keys('email')
driver.find_element(By.ID, "element_id").send_keys('password')
driver.find_element(By.ID, "element_id").send_keys(Keys.RETURN)

These are my exception codes:
raceback (most recent call last):
  File "C:\Users\stuar\PycharmProject\pythonProject1\main.py", line 16, in <module>
    driver.find_element(By.ID, "element_id").send_keys('email')
  File "C:\Users\stuar\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\selenium\webdriver\remote\webdriver.py", line 1244, in find_element
    return self.execute(Command.FIND_ELEMENT, {
  File "C:\Users\stuar\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\selenium\webdriver\remote\webdriver.py", line 424, in execute
    self.error_handler.check_response(response)
  File "C:\Users\stuar\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\LocalCache\local-packages\Python39\site-packages\selenium\webdriver\remote\errorhandler.py", line 247, 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="element_id"]"}
  (Session info: chrome=102.0.5005.63)
Stacktrace:
Backtrace:
    Ordinal0 [0x0073D953+2414931]
    Ordinal0 [0x006CF5E1+1963489]
    Ordinal0 [0x005BC6B8+837304]
    Ordinal0 [0x005E9500+1021184]
    Ordinal0 [0x005E979B+1021851]
    Ordinal0 [0x00616502+1205506]
    Ordinal0 [0x006044E4+1131748]
    Ordinal0 [0x00614812+1198098]
    Ordinal0 [0x006042B6+1131190]
    Ordinal0 [0x005DE860+976992]
    Ordinal0 [0x005DF756+980822]
    GetHandleVerifier [0x009ACC62+2510274]
    GetHandleVerifier [0x0099F760+2455744]
    GetHandleVerifier [0x007CEABA+551962]
    GetHandleVerifier [0x007CD916+547446]
    Ordinal0 [0x006D5F3B+1990459]
    Ordinal0 [0x006DA898+2009240]
    Ordinal0 [0x006DA985+2009477]
    Ordinal0 [0x006E3AD1+2046673]
    BaseThreadInitThunk [0x759EFA29+25]
    RtlGetAppContainerNamedObjectPath [0x77667A7E+286]
    RtlGetAppContainerNamedObjectPath [0x77667A4E+238]

看来您使用的 locators Value 不正确,请尝试以下

driver.find_element(By.CSS_SELECTOR, "#session_key").send_keys('email')
driver.find_element(By.CSS_SELECTOR, "#session_password").send_keys('password')
driver.find_element(By.XPATH, "//*[@id='main-content']/section[1]/div/div/form/button").send_keys(Keys.RETURN)

希望这能解决您的问题,如果您仍然遇到任何问题,请告诉我。