我是一个python新手,但最近尝试学习Selenium。
我使用的网页是 https:/securereg3.prometric.comWelcome.aspx? msg=EMExpSes
不知为什么,它不会从这个下拉列表中选择 "STEP2",我该怎么办?请大家帮忙
这是我的代码。
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")
你错过了 driver.
在这一行。
prog = Select(find_element_by_id("masterPage_cphPageBody_ddlPrograms"))
这是应该的。
prog = Select(driver.find_element_by_id("masterPage_cphPageBody_ddlPrograms"))
这个网站 https:/securereg3.prometric.comWelcome.aspx。 不会填入 <option>
内的项目 第二步 除非您从 辐射按钮 和 下拉菜单 内 第一步.
要点击 无线电按钮 附文 学术、专业执照& 认证、政府和企业计划。 并选择选项 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
浏览器快照。