Выбор кнопки отправки с Python (Selenium) - PullRequest
0 голосов
/ 14 июня 2019

Я хочу автоматизировать Github-репозиторий с помощью Python (Selenium), пока я использую cmd.Я перешел к последнему шагу: «Создать новый репозиторий» на 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 ]

1 голос
/ 14 июня 2019

Когда вы используете 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, вы должны использовать индекс дляполучить первый матч, а затем нажмите, как показано ниже код.

driver.find_elements_by_css_selector('button.first-in-line')[0].click()
0 голосов
/ 15 июня 2019

К click() для элемента с текстом Создать репозиторий Вы должны вызвать WebDriverWait для element_to_be_clickable(), и вы можете использовать любую из следующих Стратегий локатора

  • Использование 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
    
0 голосов
/ 14 июня 2019

Попробуйте,

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

Во-первых, всегда старайтесь использовать driver.find_elements_by_xpath(), что поможет вам минимизировать массу ошибок.

...