python - 我究竟做错了什么。硒藻
问题描述
是因为我使用python REPL吗?我不知道那是什么。
我的代码:
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)
解决方案
您正在尝试找到一个动态的 id,并且将使用 css 选择器或 xpath 进行更改。我假设您正在尝试单击注册按钮或类似的东西。这是该元素的一个示例。
CSS 选择器
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "div.mod-login-btn > button"))).click()
路径
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
推荐阅读
- codeigniter - Codeigniter 3.1.9 MY_Form_validation 不起作用
- powershell - 将 PowerShell 数组转换为整数
- laravel - 在 laravel 上使用图表时出现错误
- javascript - 如何在 php 中检索 javascript 变量并将其添加到数据库中
- google-bigquery - BigQuery 数据传输服务 - 调度程序不起作用
- angular - 使用 Angular 6 中的 JSON 过滤
- xamarin.forms - 如何将滑动点添加到选项卡式/轮播页面?
- python - 在两个字典之间映射的 Pythonic 方法,其中一个字典具有嵌套键
- qml - FileDialog(QtQuick Object)中实例化一个c++类,报错:Cannot assign object to property
- python-2.7 - Python IndentationError - Lambda 备份