from selenium import webdriver import time from selenium.webdriver.common.by import By from selenium.webdriver.support.wait import WebDriverWait """ browser.switch_to.frame(frame_reference)-->切换到指定frame的方法 frame_reference:可以为frame框架的name、id或者定位到的frame元素 browser.switch_to.default_content()-->恢复默认页面方法 """ """ 页面嵌套 假设一个页面有别的两个页面嵌套进来了(类似于在饿了吗里面嵌套个高德地图不是独立div而是直接嵌套) 我们没有办法确定是操作的主页面还是别的页面 """ browser = webdriver.Chrome() # 打开测试网站 browser.get( 'file:///C:/Users/%E9%BE%99%E7%A5%9E/Desktop/ui%E6%B5%8B%E8%AF%95%E8%B0%B7%E6%AD%8C%E5%8C%85/pagetest/%E6%B3%A8%E5%86%8C%E5%AE%9E%E4%BE%8B.html') time.sleep(2) browser.implicitly_wait(10) # 全部隐式等待10秒 # 针对主页的用户名输入admin browser.find_element(By.ID, 'userA').send_keys("admin") time.sleep(2) # 我们这里的操作从主页访问了进入了用户a # 针对注册用户a输入用户名adminA browser.switch_to.frame(browser.find_element(By.ID, 'idframe1')) browser.find_element(By.ID, "AuserA").send_keys('adminA') time.sleep(2) # 因为我们还在用户a的页面 要想操作用户b只能先回到主页面 # 回到默认首页面 browser.switch_to.default_content() # 针对注册用户b输入用户名adminB ele_frame=browser.find_element(By.ID, 'idframe2') browser.switch_to.frame(ele_frame) browser.find_element(By.ID, "BuserA").send_keys('adminB') time.sleep(2) browser.quit()
这个逻辑不清楚的请看下图