gpt4 book ai didi

python - 如何使用 Selenium python 通过 id 查找网站元素?

转载 作者:太空宇宙 更新时间:2023-11-04 04:15:51 26 4
gpt4 key购买 nike

我正在尝试创建一个脚本来下载给定的 episode .比如我想打开720p的第6集的磁铁。但是,即使 id 正确,Selenium 也找不到该元素。

我第一次尝试使用 Xpath,但我得到了同样的错误。

尝试

def downloadEpisode(episode):
if episode > 9:
id = str(episode)
else:
id = "0" + str(episode)
#xpath = "//*[@id='" + id + "-720p']/span[2]/a" copied it using element inspect
driver = webdriver.Chrome()
driver.get("https://horriblesubs.info/shows/black-clover/")

element1=WebDriverWait(driver,10).until(EC.presence_of_element_located((By.ID, id)))

#also tried these two below
#element1 = driver.find_element_by_id(id)
#element1 = WebDriverWait(driver,10).until(EC.presence_of_element_located((By.XPATH,xpath)))

element2 = element1.find_element_by_id(id + "-720p")
element3 = element2.find_element_by_link_text("magnet")

actions = ActionChains(driver)
actions.click(element3).perform()

我该如何解决这个问题?

最佳答案

听起来您遇到了一个非常常见但完全可以解决的问题。在尝试对元素执行单击操作之前,您首先需要滚动到 View 中(例如向下滚动页面),这样它才能对 DOM 可见。使用 actionchains 或 execute_script。

actions.move_to_element(element).perform()

老兄,这篇较旧的帖子应该让事情变得更清楚了:) Scrolling to element using webdriver?

关于python - 如何使用 Selenium python 通过 id 查找网站元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55444420/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com