【发布时间】:2022-02-08 18:31:24
【问题描述】:
我正在尝试制作一个简单的脚本,该脚本会转到 The Whiskey Exchange 的主页,单击以下菜单项,导航到新页面并最终截取屏幕截图。
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
chrome_options = Options()
driver = webdriver.Chrome(options=chrome_options)
driver.get("https://www.thewhiskyexchange.com/")
driver.implicitly_wait(3)
search_bar = driver.find_element(
By.XPATH, "/html/body/div[3]/nav/div/div[3]/div/div/div[2]/a[2]")
search_bar.click()
driver.implicitly_wait(3)
driver.save_screenshot('./image.png')
driver.quit()
我尝试了多种方法来使其工作,主要是通过更改查找器的类型,但没有运气。我尝试过复制 XPATH 和 Full XPATH(直接从 chrome 复制),但这也没有奏效。也许这与网站的构建方式有关,但不知道。
我收到以下错误消息:
NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/div[3]/nav/div/div[3]/div/div/div[2]/a[2]"}
第一次使用 selenium,所以斗争有点真实。请帮忙。
【问题讨论】:
-
我没有看到 xpath 的元素是您想要的主页搜索框的屏幕截图,导致弹出另一个元素。
-
你指的是哪个元素 /html/body/div[3]/nav/div/div[3]/div/div/div[2]/a[2]
-
是我在图中圈出来的菜单项。我从 Chrome 开发者工具中复制了完整的 xpath。
标签: python selenium xpath css-selectors webdriverwait