【发布时间】:2020-07-23 12:46:57
【问题描述】:
我希望能够使用 selenium 单击某个元素。 我正在使用以下链接:https://www.rivm.nl/media/smap/eenzaamheid.html
我希望能够使用 for 循环选择地图中的每个县/省。
我所在的地图本身:
wijk_keuze = WebDriverWait(driver2nd,20).until(EC.element_to_be_clickable((By.XPATH, "//div[@class='highcharts-container ']//*[name()='svg']")
到目前为止一切顺利。但是,当我想选择一个县/省时,我的问题就从这里开始了。
县/省居住在以下元素中:
<g class="highchairs-series-group">
在这个父元素中,我想遍历每个子元素(即县/省)。 县/省元素如下所示:
<g class="highcharts-series highcharts-series-0 highcharts-map-series highcharts-tracker" transform="translate(79,10) scale(1 1)" style="cursor:pointer;" clip-path="url(#highcharts-5p0c896-1)" role="region" tabindex="-1" aria-label="Delfzijl, series 1 of 4. Map with 0 areas.">
每个县元素看起来都一样,除了 aria-label。 (Delfzijl 是县/省的示例)
我能够在地图上找到“下载元素”,因此我假设遵循类似的过程。通过执行以下操作找到并单击下载元素:
Indicator_keuze.select_by_index(index)
download = WebDriverWait(driver2nd, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[@class='highcharts-container ']//*[name()='svg']//*[name()='g' and @aria-label='View export menu']//*[name()='rect']")))
download.click()
WebDriverWait(download, 10).until(EC.visibility_of_element_located((By.XPATH, "//div[@class='highcharts-menu']//*[contains(text(),'XLS downloaden')]"))).click()
我尝试通过执行以下操作来定位上述元素:
wijk_keuze = WebDriverWait(driver2nd,20).until(EC.element_to_be_clickable((By.XPATH, "//div[@class='highcharts-container ']//*[name()='svg']//*[name()='g' and aria-label='Delfzijl, series 1 of 4. Map with 0 areas.']")))
但这会导致超时错误。
那么,我如何能够循环并点击每个不同的县/省?
【问题讨论】: