【问题标题】:How can I create a loop to click all buttons of a page using Selenium [duplicate]如何使用 Selenium 创建一个循环来单击页面的所有按钮 [重复]
【发布时间】:2020-02-20 01:01:54
【问题描述】:

我在一个页面上有 60 个按钮,我想点击所有这些按钮。是否可以创建一个循环来这样做?

按钮的 XPATH:

/html/body/form/div[3]/div[4]/table/tbody/tr/td[2]/div/table/tbody/tr[2]/td/div/div/div/ ct-polling-activity/div/div/div/div[2]/div[1]/table/tbody/tr[1]/td[6]/div/i

/html/body/form/div[3]/div[4]/table/tbody/tr/td[2]/div/table/tbody/tr[2]/td/div/div/div/ ct-polling-activity/div/div/div/div[2]/div[1]/table/tbody/tr[2]/td[6]/div/i

它们唯一不同的数字是最后一个 tr[],它是一个序列,直到达到 60。

这是我用来点击按钮的函数。

def explicit_wait_xpath(my_selector):
    wait = WebDriverWait(driver, 10)
    element = wait.until(EC.element_to_be_clickable((By.XPATH, 
                                                my_selector)))
    element.click()

【问题讨论】:

    标签: python-3.x selenium


    【解决方案1】:

    根据您提出的问题,我认为您可以创建一个循环,动态更新选择器并将其传递给函数调用。

    def explicit_wait_xpath(my_selector):
        wait = WebDriverWait(driver, 10)
        element = wait.until(EC.element_to_be_clickable((By.XPATH,my_selector)))                                                  
        element.click()
    
    
    for i in range(1,61):
       # use of f-string
       selector = f'"/html/body/form/div[3]/div[4]/table/tbody/tr/td[2]/div/table/tbody/tr[2]/td/div/div/div/ct-polling-activity/div/div/div/div[2]/div[1]/table/tbody/tr[{i}]/td[6]/div/i"'
       explicit_wait_xpath(selector)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-30
      • 2015-10-16
      • 2023-04-02
      • 2019-10-28
      • 2012-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多