frame切换方法1
import unittest
from selenium import webdriver
import time
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
from selenium.common.exceptions import TimeoutException
driver = webdriver.Ie()
url = 'http://127.0.0.1/frameset.html'
driver.get(url)
time.sleep(2)
driver.switch_to.frame(0) # 切换到编号为0的frame
leftFrameText=driver.find_element_by_xpath('//p') # 定位p标签
assert leftFrameText.text=='这是左侧 frame 页面上的文字' # 断言p标签的文本
driver.find_element_by_tag_name('input').click() # 通过标签名定位元素,并点击
try:
alertWindow=WebDriverWait(driver,10).until(EC.alert_is_present()) # 等待弹框出现
alertWindow.accept() # 接受弹框
except TimeoutException as e:
print(e)
driver.switch_to.default_content() # 从frame(0)中切换出来,回到主页面
driver.switch_to.frame(driver.find_elements_by_tag_name('frame')[1]) # 通过下标定位frame2,再切换到frame2
assert '这是中间 frame 页面上的文字' in driver.page_source # 断言网页源码包含指定文字
driver.find_element_by_tag_name('input').send_keys('你好') # 定位input元素,并输入'你好'
driver.switch_to.default_content() # 切回主页面
driver.switch_to.frame(driver.find_element_by_id('rightframe')) # 通过id定位frame3,然后切换到frame3
assert '这是右侧 frame 页面上的文字' in driver.page_source # 断言网页源码包含指定文字
driver.switch_to.default_content() # 切回主页面
driver.quit() # 关闭浏览器
frame切换方法2
import unittest
from selenium import webdriver
import time
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
from selenium.common.exceptions import TimeoutException
driver = webdriver.Ie()
url = 'http://127.0.0.1/frameset.html'
driver.get(url)
time.sleep(2)
framesList=driver.find_elements_by_tag_name('frame') # 获取页面所有的frame
for frame in framesList: # 遍历所有frame
driver.switch_to.frame(frame) # 切换frame
if '这是中间 frame 页面上的文字' in driver.page_source: # 判断该frame是否是要操作的frame
driver.find_element_by_tag_name('input').send_keys('你好') # 定位input元素,并输入'你好'
driver.switch_to.default_content() # 切回主页面
driver.quit() # 关闭浏览器
alert弹框操作
import unittest
from selenium import webdriver
import time
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
from selenium.common.exceptions import TimeoutException, NoAlertPresentException
driver = webdriver.Ie()
url = 'http://127.0.0.1/test_alert.html'
driver.get(url)
time.sleep(2)
button=driver.find_element_by_id('button') # 定位按钮
button.click() # 点击按钮,弹出alert框
try:
alert=driver.switch_to_alert() # 切换到alert弹框
alert.text # 获取弹框提示文字
#alert.send_keys('你好') # 如果弹框中需要输入内容,可用此方法
alert.accept() # 点击确定
#alert.dismiss() # 点击取消
except NoAlertPresentException as e:
print(e)
driver.quit() # 关闭浏览器