Не могу выбрать вариант из второго раскрывающегося меню, используя Selenium Python - PullRequest
0 голосов
/ 16 июня 2020

Я python новичок ie, но недавно пытался изучить Selenium.

Я использую веб-страницу: https://securereg3.prometric.com/Welcome.aspx?msg=EMExpSes

По какой-то причине он не выберет «ШАГ2» из этого раскрывающегося списка, что мне делать? Пожалуйста, помогите

Это мой код:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select
import time

PATH = 'C:\Program Files (x86)\chromedriver.exe'
driver = webdriver.Chrome(PATH)
driver.get('https://securereg3.prometric.com/Welcome.aspx')
driver.find_element_by_id("masterPage_cphPageBody_rbnProfLisc").click()
prog = Select(find_element_by_id("masterPage_cphPageBody_ddlPrograms"))
time.sleep(1)
prog.select_by_visible_text("STEP2")

Ответы [ 2 ]

2 голосов
/ 16 июня 2020

Вы пропустили driver. в этой строке:

prog = Select(find_element_by_id("masterPage_cphPageBody_ddlPrograms"))

Должно быть:

prog = Select(driver.find_element_by_id("masterPage_cphPageBody_ddlPrograms"))
0 голосов
/ 16 июня 2020

Веб-сайт https://securereg3.prometric.com/Welcome.aspx не будет заполнять элементы <option> в ШАГ 2 , если вы не выберете параметры из радиокнопки и внутри ШАГ 1 .

Чтобы щелкнуть Переключатель с текстом Academi c, Профессиональная лицензия & Сертификация, государственные и корпоративные программы и выберите вариант A. Электрик ELECP , а затем на <select> вариант СОЕДИНЕННЫЕ ШТАТЫ , вам нужно вызвать WebDriverWait для element_to_be_clickable(), и вы можете использовать любой из следующие Стратегии локатора :

  • Использование CSS_SELECTOR:

    driver.get('https://securereg3.prometric.com/Welcome.aspx')
    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input#masterPage_cphPageBody_rbnProfLisc"))).click()
    select1 = Select(WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "select#masterPage_cphPageBody_ddlPrograms[name^='masterPage']"))))
    select1.select_by_value("ELECP")
    select2 = Select(WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "select#masterPage_cphPageBody_ddlCountry"))))
    select2.select_by_visible_text("UNITED STATES")
    
  • Использование XPATH :

    driver.get('https://securereg3.prometric.com/Welcome.aspx')
    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//input[@id='masterPage_cphPageBody_rbnProfLisc']"))).click()
    select1 = Select(WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//select[@id='masterPage_cphPageBody_ddlPrograms']"))))
    select1.select_by_value("ELECP")
    select2 = Select(WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//select[@id='masterPage_cphPageBody_ddlCountry']"))))
    select2.select_by_visible_text("UNITED STATES")
    
  • Примечание : вам необходимо добавить следующие импорты:

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    from selenium.webdriver.support.ui import Select
    
  • Снимок браузера:

prometric

...