Не загружается целевая страница - Selenium Web Form Automation - PullRequest
0 голосов
/ 16 октября 2018

Создание сценария, который будет входить на сайт ниже и автоматически регистрировать значения в веб-форме.Проблема в том, что после входа в систему целевая страница пуста (т.е. загружает заголовки, но это все).Мой код ниже:

profile = webdriver.FirefoxProfile()
profile.accept_untrusted_certs = True
browser = webdriver.Firefox(profile)
browser.get('https://cmsdb.darkcosmos.org/experiments/run/new')
print('Connected to Server')
time.sleep(2) # Wait for page to load
login_button = browser.find_element_by_xpath('/html/body/div/div[5]/main/div/div[1]/div/div[3]/button')
login_button.click()
time.sleep(2) # Wait for pop-out to load
browser.find_element_by_xpath('//*[@id="username"]').send_keys(username)
browser.find_element_by_xpath('//*[@id="password"]').send_keys(password)
login_attempt = browser.find_element_by_xpath('/html/body/div/div[4]/div/div/div/div/div/form/button[1]')
login_attempt.submit()
print('Logged In')
time.sleep(2) # Wait for new page to load
browser.find_element_by_xpath('//*[@id="title"]').send_keys('Title') #  Code breaks here. It cannot find the title entry area because the new page is blank.

Я пытался создать профиль Firefox, дать время загрузки страницы и отключить сертификаты.Он загружается просто отлично, когда я вхожу вручную.Заранее спасибо за помощь!

1 Ответ

0 голосов
/ 16 октября 2018

Чтобы войти в систему с URL-адресом https://cmsdb.darkcosmos.org/experiments/run/new и предоставить имя пользователя и пароль , используя новый FirefoxProfile , вам нужно вызвать WebDriverWait для желаемых элементов, которые можно нажимать , и вы можете использовать следующее решение:

  • Кодовый блок:

    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    
    profile = webdriver.FirefoxProfile()
    profile.accept_untrusted_certs = True
    browser = webdriver.Firefox(firefox_profile=profile, executable_path=r'C:\Utility\BrowserDrivers\geckodriver.exe')
    browser.get('https://cmsdb.darkcosmos.org/experiments/run/new')
    print('Connected to Server')
    login_button = browser.find_element_by_xpath('/html/body/div/div[5]/main/div/div[1]/div/div[3]/button')
    WebDriverWait(browser, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "div.v-content__wrap button.v-btn.v-btn--flat.theme--light.primary--text"))).click()
    WebDriverWait(browser, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input#username"))).send_keys("clcarver")
    browser.find_element_by_css_selector("input#password").send_keys("clcarver")
    login_attempt = browser.find_element_by_css_selector("div.v-btn__content>i.v-icon.pr-1.mdi.mdi-lock-open-outline.theme--light").click()
    
  • Вывод на консоль:

    Connected to Server
    
  • Снимок экрана браузера:

DarkCosmos_Login

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...