Selenium访问Salesforce遇SSO重定向:无法操作第二页元素
企业SSO登录流程中Selenium无法操作页面2元素的问题
我用Python+Selenium编写脚本访问Salesforce网站,需要完成企业SSO登录流程:
- 页面先重定向到要求输入企业邮箱的登录页(页面1),提交邮箱后跳转至需输入登录凭证的页面(页面2),之后才能进入目标仪表盘
- 脚本可正常操作页面1的元素,但无法对页面2的元素执行任何操作
- 已尝试隐式等待和显式等待,推测问题并非页面加载等待不足,而是同窗口重定向后的上下文问题
以下是我的代码:
url = "someurl.com" class MyTest(object): def __init__(self): self.driver = webdriver.Chrome(service=Service(ChromeDriverManager().install())) def login_process(self): self.driver.get(url) element = self.driver.find_element(By.ID, 'idp-discovery-username') element.clear() element.send_keys("israo@cisco.com") self.driver.find_element(By.ID, 'idp-discovery-submit').submit() self.driver.implicitly_wait(10) # 尝试过等待iframe并切换,但无效 # login_button = WebDriverWait(self.driver, 20).until( # EC.frame_to_be_available_and_switch_to_it((By.CSS_SELECTOR, "iframe[id$='IFrame_htmIFrame']")) # ) def query(self): self.driver.find_element(By.XPATH, '/html/body/div/div[2]/div[2]/article/form/input[6]') test = MyTest() test.login_process() test.query()
注:页面2中我尝试定位的元素位于绿色框区域,使用上述XPATH无法找到,恳请帮忙解决。
内容的提问来源于stack exchange,提问作者raoyourboat
相关产品推荐
相关产品推荐

