找不到元素SteamDB-硒



我对编程很陌生,一直在试验Selenium。

我想从URL"下载一个XLS文件;https://steamdb.info/tech/Engine/Unity/"。

每当我试图在下载按钮上找到元素时,它都会返回

"selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//*[@id='highcharts-0tuszdg-0']/svg/g[6]/g/image"}
(Session info: chrome=98.0.4758.102)"

我想点击这个元素,它会打开一个下载XLS按钮,然后点击该按钮下载XLS。

这是我一直在使用的代码:

ser = Service('C:\Users\Admin\Documents\Drivers\chromedriver.exe')
op = webdriver.ChromeOptions()
s = webdriver.Chrome(service=ser, options=op)
#implicit wait
s.implicitly_wait(0.5)
#maximize browser
s.maximize_window()
#launch URL
s.get("https://steamdb.info/tech/Engine/Unity/")
s.implicitly_wait(0.5)
s.find_element_by_xpath("//*[@id='highcharts-0tuszdg-0']/svg/g[6]/g/image")
s.implicitly_wait(0.5)
l =s.find_element_by_xpath('//*[@id="highcharts-0tuszdg-0"]/div/ul/li[2]')
#perform click
l.click()

我意识到我对这件事很陌生,可能做了各种各样的错事。希望你能引导我朝着正确的方向前进。

谢谢!顺式

options = Options()
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()),options=options)
driver.maximize_window()
wait=WebDriverWait(driver,10)
driver.get("https://steamdb.info/tech/Engine/Unity/")
wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR,"svg > g.highcharts-exporting-group > g > image"))).click()
wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR,"ul.highcharts-menu > li:nth-child(2)"))).click()

如果你想将Options与Service结合使用,你应该这样做,所以我使用Chromedriver管理器来确保二进制文件设置正确。从那里你需要等待元素可以使用Webdriver等待点击,然后点击这些元素。

  1. 隐式等待是为了加载页面而不是查找元素,所以请使用显式。

  2. 色度选项与driver.find_element_by_*.一起折旧

  3. 选择了不正确的xpath。

导入:

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.chrome.options import Options
from webdriver_manager.chrome import ChromeDriverManager

相关内容

  • 没有找到相关文章

最新更新