Нажатие на кнопку обновляет страницу (непреднамеренно) с Селен Python - PullRequest
0 голосов
/ 20 октября 2019

Я пытаюсь автоматизировать загрузку файла в репозиторий github.

Код:

from selenium import webdriver

browser=webdriver.Chrome(r'C:\Users\Eliran\Desktop\chromedriver')
browser.get('https://github.com/login')

username=browser.find_element_by_id('login_field')
username.send_keys(myemail)

password=browser.find_element_by_id('password')
password.send_keys(mypassword)

sign_in_btn=browser.find_element_by_name('commit')
sign_in_btn.click()

browser.get('https://github.com/DevEliran/DevEliran.github.io/upload/master') #pathing immidiately to "upload files" in my repo
commit=browser.find_elements_by_xpath("/html/body/div[4]/div/main/div[2]/div/form/button")[0] # commit button
upload=browser.find_element_by_class_name('manual-file-chooser')#manually uploading my file
upload.send_keys(myfilepath)
commit.click()

после commit.click() страница обновляется и выдает ошибку: «Добавьте некоторые файлы для включения в этот коммит».

Я дважды проверилкаждый элемент. Кто-нибудь сталкивался с такой же проблемой?

1 Ответ

0 голосов
/ 20 октября 2019

Можете ли вы проверить, существует ли путь к файлу?

if (!os.path.exists(myfilepath)):
    print(myfilepath + ' doesnt exist')
else:
    print(myfilepath + ' exists')
    upload.send_keys(myfilepath)
    commit.click()

, если файл существует, есть вероятность, что он был отправлен на неправильный элемент. Попробуйте сначала отправить путь к этому xpath, затем подождите, пока он загрузится, а затем найдите и щелкните элемент commit.

browser.find_elements_by_xpath("//input[@type='file']").send_keys(myfilepath)

wait = WebDriverWait(browser, 90)
men_menu = wait.until(ec.visibility_of_element_located((By.XPATH, "//table[@class='files']//td[@class='name']")))

browser.find_elements_by_xpath("//button[contains(text(), 'Commit')]").click()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...