python - 似乎无法访问 html 中的元素
问题描述
我已经尝试了 3 个多小时来让我的程序从网站Supremenewyork.com打开一个页面。
我想做的是通过输入颜色(在本例中为自然色)和产品名称(商店连帽运动衫)打开产品。
我试过了find_elements_by_name
,xpath
但它们似乎不起作用,而且没有独一无二的课程。
这是我的代码:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
drive = webdriver.Chrome(executable_path='../drivers/chromedriver')
drive.get('https://www.supremenewyork.com/shop/all')
search = drive.find_element_by_link_text("sweatshirts")
search.click()
解决方案
这是一个单击运动衫标签的示例,然后获取要检查的值并等待页面加载。
driver.get('https://www.supremenewyork.com/shop/all')
search = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.LINK_TEXT, "sweatshirts")))
search.click()
articles = WebDriverWait(driver, 10).until(EC.visibility_of_all_elements_located((By.CSS_SELECTOR, "#container > li > div")))
for article in articles:
name = article.find_element_by_css_selector("div.product-name > a")
print(name.text)
style = article.find_element_by_css_selector("div.product-style > a")
print(style.text)
#if name.text=='' and style.text=='':
#name.click()
推荐阅读
- node.js - 在给定时间内自动删除会话变量
- python - 将模型从一个项目导入另一个项目(产生 RuntimeError)
- algorithm - 图像像素变换的正确数学方程
- java - 我怎样才能使磁化对齐
- cordova - 在 Ionic 中启动新项目
- r - 初学者的 R 错误:无法编织,“与矢量长度相同”。
- authentication - 如何检查经过身份验证的用户是否具有特定声明并且路由段是否与用户 ID 相同?
- parquet - 可以比较两个镶木地板文件吗?
- coq - Coq 和 Awodey 的论文中的平等
- c# - 如果我的 C# JSON.text 文件被删除或值被更改,则需要我的 C# JSON.text 文件具有默认 HighScores (UNITY)