【问题标题】:How can I click the button and move to next page using selenium?如何单击按钮并使用 selenium 移至下一页?
【发布时间】:2021-12-26 23:37:01
【问题描述】:

我无法使用 selenium 单击按钮并移至下一页。我尝试了以下命令:

driver.find_element_by_xpath(".//div[text()='Production']").click() 
driver.find_element_by_xpath('//*[@id="root"]/div/[1]/div/div/div[2]/button[2]').click 

我已经添加了 html 的截图。

我做错了什么?

【问题讨论】:

  • 您发送的第二行在 .click 后缺少括号

标签: python selenium xpath css-selectors webdriverwait


【解决方案1】:

要单击文本为 Production 的元素,您可以使用以下任一Locator Strategies

  • 使用css_selector

    driver.find_element(By.CSS_SELECTOR, "button.nav-option.nav-option--main > div.section-title").click()
    
  • 使用xpath

    driver.find_element(By.XPATH, "//button[@class='nav-option nav-option--main']/div[@class='section-title']//div[text()='Production']").click()
    

理想情况下点击你需要诱导WebDriverWaitelement_to_be_clickable()的元素,你可以使用以下Locator Strategies之一:

  • 使用CSS_SELECTOR

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "button.nav-option.nav-option--main > div.section-title"))).click()
    
  • 使用XPATH

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//button[@class='nav-option nav-option--main']/div[@class='section-title']//div[text()='Production']"))).click()
    
  • 注意:您必须添加以下导入:

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

【讨论】:

    【解决方案2】:

    我猜分页按钮在页面底部,在可见屏幕之外。如果是这样,要单击它,您首先必须向下滚动页面,将该元素放入视图中,然后单击它。
    请试试这个:

    pager = wait.until(EC.presence_of_element_located((By.XPATH, "//div[text()='Production']")))
    driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
    time.sleep(0.5)
    actions.move_to_element(pager).perform()
    time.sleep(0.5)
    driver.find_element_by_xpath("//div[text()='Production']").click() 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-20
      • 2018-11-04
      相关资源
      最近更新 更多