在python中使用硒单击网页上的“下一步”按钮

时间:2020-01-08 23:09:53

标签: python selenium-webdriver

我有一个非常简单的网页,希望输入激活码后单击“下一步”按钮。但是我无法通过值/名称“ next”找到元素。从inspect元素

<input type="submit" name="activationpage1:j_id_id18" value="Next &gt;&gt;" style="font-family:Arial,sans-serif;font-size:11px;text-align:center;" />

如何在python代码中单击名为 Next>> 的按钮来实现此目的?

2 个答案:

答案 0 :(得分:2)

此元素的名称为"activationpage1:j_id_id18",请使用

driver.find_element_by_name("activationpage1:j_id_id18")

或者您可以像使用xpath

driver.find_element_by_xpath('//input[@name="activationpage1:j_id_id18"]')

driver.find_element_by_xpath('//input[@value="Next &gt;&gt;"]')

driver.find_element_by_xpath('//input[@type="submit"]')

driver.find_element_by_xpath('//input[@style="font-family:Arial,sans-serif;font-size:11px;text-align:center;"]')

答案 1 :(得分:0)

要在文本为 click() 的元素上Next >>,请为element_to_be_clickable()引入 WebDriverWait ,然后可以使用以下任一Locator Strategies

  • 使用CSS_SELECTOR

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input[name^='activationpage'][value^='Next'][type='submit']"))).click()
    
  • 使用XPATH

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//input[starts-with(@name,'activationpage') and starts-with(@value,'Next')][@type='submit']"))).click()
    
  • 注意:您必须添加以下导入:

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