我正在try 使用Selenium访问OpenStreetBrowser的速度数据,但无法访问网站的JPEG元素.

这就是我到目前为止try 过的

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

driver = webdriver.Chrome()
driver.maximize_window()
driver.get('https://www.openstreetbrowser.org')

wait = WebDriverWait(driver, 15)

xpath_expression = f"//a[contains(text(), 'Transportation')]"
wait.until(EC.element_to_be_clickable((By.XPATH, xpath_expression))).click()

xpath_expression = f"//a[contains(text(), 'Individual Traffic')]"
wait.until(EC.element_to_be_clickable((By.XPATH, xpath_expression))).click()

xpath_expression = f"//a[contains(text(), 'Maxspeed')]"
wait.until(EC.element_to_be_clickable((By.XPATH, xpath_expression))).click()

xpath_expression = f"//li[contains(text(), 'search')]"
wait.until(EC.element_to_be_clickable((By.XPATH, "//ul[@class='tabs-list']//li[@title='search']"))).click()

wait.until(EC.element_to_be_clickable((By.XPATH, "//div[@class='tabs-section nominatim-search selected']//input"))).send_keys('53.40125254855821,-3.0876670857133757')
wait.until(EC.element_to_be_clickable((By.XPATH, "//div[@class='tabs-section nominatim-search selected']//ul//li"))).click()

a = wait.until(EC.element_to_be_clickable((By.XPATH, "//*[@id='map']//div[1]//div[2]//svg")))

我遇到以下例外

TimeoutException: Message: 
Stacktrace:
    GetHandleVerifier [0x00007FF737801502+60802]
    (No symbol) [0x00007FF73777AC02]
    (No symbol) [0x00007FF737637CE4]
    (No symbol) [0x00007FF737686D4D]
    (No symbol) [0x00007FF737686E1C]
    (No symbol) [0x00007FF7376CCE37]
    (No symbol) [0x00007FF7376AABBF]
    (No symbol) [0x00007FF7376CA224]
    (No symbol) [0x00007FF7376AA923]
    (No symbol) [0x00007FF737678FEC]
    (No symbol) [0x00007FF737679C21]
    GetHandleVerifier [0x00007FF737B0411D+3217821]
    GetHandleVerifier [0x00007FF737B460B7+3488055]
    GetHandleVerifier [0x00007FF737B3F03F+3459263]
    GetHandleVerifier [0x00007FF7378BB846+823494]
    (No symbol) [0x00007FF737785F9F]
    (No symbol) [0x00007FF737780EC4]
    (No symbol) [0x00007FF737781052]
    (No symbol) [0x00007FF7377718A4]
    BaseThreadInitThunk [0x00007FF87E237344+20]
    RtlUserThreadStart [0x00007FF87FD826B1+33]

似乎每条路段都被安排为图像/瓷砖.我想单击每张图像,然后单击弹出窗口上的"详细信息"选项以收集所需的数据.如何访问此网站上的每个磁贴并单击它?

提前感谢!

推荐答案

必须与其他元素不同地对待JPEG元素.您需要稍微更新您的定位器才能访问它们.而不是

(By.XPATH, "//svg")

你需要使用

(By.XPATH, "//*[name()='svg']")

因此,您的VG定位器将更改为

a = wait.until(EC.element_to_be_clickable((By.XPATH, "//*[@id='map']//div[1]//div[2]//*[name()='svg']")))

Python相关问答推荐

是否有使用纯霍夫曼编码的现代图像格式?

Python tkinter关闭第一个窗口,同时打开第二个窗口

在pandas DataFrame上运行apply()时如何访问DateTime索引?

带有Postgres的Flask-Data在调用少量API后崩溃

如何修复fpdf中的线路出血

当pip为学校作业(job)安装sourcefender时,我没有收到匹配的分发错误.我已经try 过Python 3.8.10和3.10.11

customtkinter中使用的这个小部件的名称是什么

如何将带有逗号分隔的数字的字符串解析为int Array?

如何在PIL、Python中对图像应用彩色面膜?

Image Font生成带有条形码Code 128的条形码时出现枕头错误OSErsor:无法打开资源

多处理代码在while循环中不工作

线性模型PanelOLS和statmodels OLS之间的区别

海运图:调整行和列标签

无法通过python-jira访问jira工作日志(log)中的 comments

Julia CSV for Python中的等效性Pandas index_col参数

Pandas—合并数据帧,在公共列上保留非空值,在另一列上保留平均值

如何使用pytest来查看Python中是否存在class attribution属性?

关于Python异步编程的问题和使用await/await def关键字

调用decorator返回原始函数的输出

如何使用Numpy. stracards重新编写滚动和?