Нажатие кнопки Python Selenium не имеет никакого эффекта - PullRequest
2 голосов
/ 29 марта 2019

Я пытаюсь загрузить статьи из Поиска Альфы.Поскольку многие статьи предназначены только для подписчиков, я должен войти в систему, прежде чем просматривать и загружать эти статьи.Код, который я использовал, предоставляется следующим образом.У меня проблема в том, что click() не имеет никакого эффекта.Когда я вошел в систему вручную, это работало хорошо.

# open website
url_lib = 'https://seekingalpha.com'
driver.get(url_lib)

# sign in
sign_in = driver.find_element_by_id('sign-in')
sign_in.click()

# id and pw
sign_id = driver.find_element_by_id('authentication_login_email')
sign_id.send_keys(Email address)
time.sleep(2)

sign_pw = driver.find_element_by_id('authentication_login_password')
sign_pw.send_keys(Password)
time.sleep(2)

# click submit button
submit_button = driver.find_element_by_id('log-btn')
submit_button.click()

Будем благодарны за любые предложения!Заранее спасибо!

1 Ответ

1 голос
/ 30 марта 2019

Желаемыми элементами являются JavaScript включенный элемент, поэтому вам нужно ввести WebDriverWait для желаемого element_to_be_clickable, и вы можете использовать следующее решение:

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

    from selenium import webdriver
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    
    options = webdriver.ChromeOptions()
    options.add_argument("start-maximized")
    # options.add_argument("disable-infobars")
    options.add_argument("--disable-extensions")
    driver = webdriver.Chrome(chrome_options=options, executable_path=r'C:\WebDrivers\chromedriver.exe')
    driver.get("https://seekingalpha.com")
    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "a#sign-in"))).click()
    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input.form-control#authentication_login_email"))).send_keys("AnnieQW")
    driver.find_element_by_css_selector("input.form-control#authentication_login_password").send_keys("AnnieQW")
    driver.find_element_by_css_selector("input.orange-btn[value='Sign in']").click()
    
  • Снимок браузера:

seekingalpha

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