无法从 Stockx 中找到元素(硒 python)

Posted

技术标签:

【中文标题】无法从 Stockx 中找到元素(硒 python)【英文标题】:Cannot find Element ( selenium python) from Stockx 【发布时间】:2022-01-23 06:43:24 【问题描述】:
from bs4 import BeautifulSoup
import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC


url = "https://www.deadstock.de/releases/"

PATH = "C:\Program Files (x86)\chromedriver.exe"
chrome_options = Options()
chrome_options.add_experimental_option('excludeSwitches', ['enable-logging'])
driver = webdriver.Chrome(PATH, options = chrome_options)

driver.get(url)
content = driver.page_source.encode('utf-8').strip()
soup = BeautifulSoup(content,"html.parser")


elements = driver.find_element_by_xpath("""//a[@class='_brlbs-btn _brlbs-btn-accept-all _brlbs-cursor']""")
elements.click()

elements = driver.find_elements_by_xpath("""//div[@class='release-cols']""")
elements[4].click()

time.sleep(2)
elements = driver.find_element_by_xpath("""/html/body/div[3]/main/article/div/div[2]/aside/section[2]/ul/li[1]/div/a""")
elements.click()

time.sleep(5)
# elements = driver.find_element_by_link_text("Verkaufen")
# elements = driver.find_element_by_class_name('chakra-link css-85ri46')
# elements = driver.find_element_by_xpath("""//div[class='chakra-stack css-12vwdz3']""")
elements = driver.find_element_by_id("chakra-button css-14gn5pw")
elements.click()

嘿,我正在尝试从即将推出的运动鞋中从 stockx 中获取价格。首先,porgramm 找到运动鞋,然后按下 stockx 链接。从 Stockx 我想按下红色的“卖出”按钮。我尝试了很多不同的方法,但似乎找不到找到或按下链接的方法。非常感谢任何帮助!!!

【问题讨论】:

【参考方案1】:

一旦你点击 Stockx Zum Shop 链接会在一个新的TAB 中打开,所以你需要将 Selenium 的焦点转移到 new TAB 然后 click() Verkaufen 链接如下:

driver.get("https://www.deadstock.de/releases/")
windows_before  = driver.current_window_handle
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[@class='cookie-box']//a[@class='_brlbs-btn _brlbs-btn-accept-all _brlbs-cursor']"))).click()
elements = driver.find_elements_by_xpath("""//div[@class='release-cols']""")
elements[4].click()
time.sleep(2)
elements = driver.find_element_by_xpath("""/html/body/div[3]/main/article/div/div[2]/aside/section[2]/ul/li[1]/div/a""")
elements.click()
WebDriverWait(driver, 10).until(EC.number_of_windows_to_be(2))
windows_after = driver.window_handles
new_window = [x for x in windows_after if x != windows_before][0]
driver.switch_to.window(new_window)
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//button[@aria-label='Close']"))).click()
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.LINK_TEXT, "Verkaufen"))).click()

您必须添加以下导入:

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

【讨论】:

嘿,谢谢您的解决方案,但遗憾的是它似乎不起作用:( @AdrianReichert 您的评论对我也没有帮助。抱歉,答案并不能帮助您解决问题,但是我将如何根据这些反馈改进我的帖子? 对不起,我有点赶时间。所以它打开了 stockx 但它不像我之前的程序那样按下按钮 有什么新建议吗?

以上是关于无法从 Stockx 中找到元素(硒 python)的主要内容,如果未能解决你的问题,请参考以下文章

找不到硒元素下拉菜单python

硒 - 政策/cookies的问题

无法在硒中找到预期的元素数量

硒 Python 推特。 HeadLess = True 时的问题

抓取动态数据硒 - 无法定位元素

如何解决硒循环中的这个错误? InvalidSelectorException:消息:无效选择器:无法使用 xpath 定位元素