使用Python(Selenium)选择一个提交按钮

时间:2019-06-14 19:27:58

标签: python selenium xpath css-selectors webdriverwait

我想在使用cmd时使用Python(Selenium)自动化Github存储库。 我到了最后一步:在Github上“创建新存储库”,但是不能让python单击“创建存储库”。

感谢您的帮助。

我尝试过: searchBar = driver.find_elements_by_css_selector('button.first-in-line').click()searchBar = driver.find_elements_by_css_selector('button.first-in-line').submit()


<button type="submit" class="btn btn-primary first-in-line" data-disable-with="Creating repository…">
        Create repository
</button>

我希望python自动单击“创建存储库”提交按钮,以完成新的git存储库。

3 个答案:

答案 0 :(得分:1)

使用find_elements_by_css_selector时,它将返回一个列表。您必须使用find_elements_by_css_selector而不是find_element_by_css_selector

driver.find_element_by_css_selector('button.first-in-line').click()

但是,如果要使用find_elements_by_css_selector,则应使用index获得第一个匹配项,然后单击下面的代码。

driver.find_elements_by_css_selector('button.first-in-line')[0].click()

答案 1 :(得分:0)

尝试一下

searchBar = driver.find_elements_by_css_selector('.button.first-in-line').click()

一件事,请始终尝试使用driver.find_elements_by_xpath()来帮助您最大程度地减少错误。

答案 2 :(得分:0)

要对元素为click()并使用文本作为创建存储库,您必须为element_to_be_clickable()引入 WebDriverWait ,并且可以使用跟随Locator Strategies

  • 使用CSS_SELECTOR

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "button.btn.btn-primary.first-in-line"))).click()
    
  • 使用XPATH

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//button[@class='btn btn-primary first-in-line']"))).click()
    
  • 注意:您必须添加以下导入:

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