我的第一个问题与此相关。同时,我发现了一个效率较低的解决方案。我仍然希望自动下载这些文件。
我希望我的脚本点击下载图标,点击下载XLS图标,下面的页面。绿色箭头是我想点击的地方。
highchart的id在每次页面加载时都会改变。我试着用代码示例来修复它:
def unityengine_data():
driver.get("https://steamdb.info/tech/Engine/Unity/")
wait
WebDriverWait(driver,30).until(EC.visibility_of_element_located((By.XPATH, "div[contains(@id,'highcharts-')]//*[local-name() = 'svg']/*[name()='g'][6]/*[name()='g']/*[name()='image']"))).click
WebDriverWait(driver, 30).until(EC.visibility_of_element_located((By.XPATH, "div[contains(@id,'highcharts-')]//**[local-name() = 'div']/*[name()='ul'][6]/*[name()='li'][2]"))).click
os.rename("downloaded file path", "new file path")
return "Unity Engine apps data successfully downloaded"
网站图像
第一次单击后的网站
我希望你能帮忙。
2条答案
按热度按时间2izufjch1#
您只是在此行缺少
//
此外,理想情况下,应该创建
WebDriverWait
对象一次,然后在需要时重用它。看下面的代码,我也改进了一个定位器。
代码:
进口:
vlurs2pr2#
你几乎做到了。你只需要三个小的调整和一个优化如下:
//
以获得有效的xpath。local-name
* 空间内,因此不需要[local-name() = 'div']
您的有效代码块将是:
浏览器快照;
参考
您可以在以下位置找到相关的详细讨论: