【问题标题】:Unable to click element Selenium python无法单击元素 Selenium python
【发布时间】: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.']")))

但这会导致超时错误。

那么,我如何能够循环并点击每个不同的县/省?

【问题讨论】:

    标签: python selenium


    【解决方案1】:

    我可以在这里制作几个 cmets,但主要的一个可能是:

    这不匹配。 Name 查找属性 name="",即

    【讨论】:

    • 我使用“name ='g'”的原因是在定位下载元素时使用了这个(我编辑了我的问题,请参阅问题以获得进一步的解释),它有效。所以我认为遵循类似的过程也可以。有任何修复或解决方案吗?
    • 我让它工作,这样我就可以点击第一个区域(使用 name()='g',所以这确实有效)任何线索我可以如何循环遍历父元素中的每个元素? (代码:wijk_keuze = WebDriverWait(driver2nd,20).until(EC.element_to_be_clickable((By.XPATH, "//div[@class='highcharts-container']//*[name()='svg'] //*[name()='g']//*[name()='path']"))) wijk_keuze.click()
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-26
    • 2019-04-13
    • 1970-01-01
    • 1970-01-01
    • 2017-07-25
    相关资源
    最近更新 更多