我做错了什么。硒植物素

2024-04-16 22:38:42 发布

您现在位置:Python中文网/ 问答频道 /正文

是因为我使用python REPL吗?我不知道那是什么

full code and error image

我的代码:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time

PATH = "C:\Program Files (x86)\chromedriver.exe"
driver = webdriver.Chrome(PATH)

driver.get("https://member.lazada.com.my/user/login?spm=a2o4k.home.header.d5.1e532e7eD9UgkJ&redirect=https%3A%2F%2Fwww.lazada.com.my%2F%3Fspm%3Da2o4k.login_signup.header.dhome.7d0d49fbWgHyQw")
print(driver.title)

time.sleep(10)

driver.find_element_by_id("a2o4k.login_signup.menu.i0.128549fbdpzNIi").click()

错误代码:

Lazada.com.my: Online Shopping Malaysia - Mobiles, Tablets, Home Appliances, TV, Audio & More
Traceback (most recent call last):
  File "C:\Program Files (x86)\CUBAR.py", line 13, in <module>
    driver.find_element_by_id("a2o4k.login_signup.menu.i0.128549fbdpzNIi").click()
  File "C:\Users\naufa\AppData\Local\Programs\Python\Python39\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 360, in find_element_by_id
    return self.find_element(by=By.ID, value=id_)
  File "C:\Users\naufa\AppData\Local\Programs\Python\Python39\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 976, in find_element
    return self.execute(Command.FIND_ELEMENT, {
  File "C:\Users\naufa\AppData\Local\Programs\Python\Python39\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "C:\Users\naufa\AppData\Local\Programs\Python\Python39\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":"css selector","selector":"[id="a2o4k.login_signup.menu.i0.128549fbdpzNIi"]"}
  (Session info: chrome=87.0.4280.66)

Tags: inpyidbydriverseleniumlinelogin
1条回答
网友
1楼 · 发布于 2024-04-16 22:38:42

您正试图找到一个动态的id,它将改变,而不是使用css选择器或xpath。我假设您正在尝试单击“注册”按钮或类似的按钮。下面是该元素的一个示例

CSS选择器

WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "div.mod-login-btn > button"))).click()

XPath

WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, "button[text()='SIGN UP']"))).click()

进口

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import expected_conditions as EC

相关问题 更多 >