selenium获取元素内容,iframe切换,和常用方法
Posted yangguanghuayu
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了selenium获取元素内容,iframe切换,和常用方法相关的知识,希望对你有一定的参考价值。
- 获取元素信息
1. text 属性,显示该元素在web页面显示出来的文本内容
2. get_attribute方法
获取某个属性的值:
element.get_attribute(元素属性)
element.get_attribute(‘href‘)
element.get_attribute(‘style‘)
获取该元素对应html源代码:
element.get_attribute(‘outerHTML‘)
获取该元素的内部部分的HTML源代码:
element.get_attribute(‘innerHTML‘)
- BeautifulSoup4库
这种方式使用的频率很少,大家可以百度查找详细的介绍信息。
- 隐士等待时间
driver.implicitly_wait(10)
- 显示等待
from selenium.webdriver.support.ui import WebDriver
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
ele = WebDriverWait(driver,60)
until(EC.presence_of_element_located((By.ID,‘username‘)))
#等待60s,知道一个元素出现,id为username的元素
举个实例:
#为id为1的元素先设置隐士等待=60秒,无论找到未找到,隐士等待时间都会重置为10秒 driver.implicitly_wait(60) try: ele = driver.find_element_by_id(‘1‘) print (ele.text) if ele.text.startswith(‘松勤网 - 松勤软件测试‘) print(‘pass‘) else: print(‘fail‘) except: print(‘exception happend‘) finally: driver.implicitly_wait(10)
- frame处理 : 网页中内嵌的网页,frame/iframe
切换frame
driver.switch_to.frame(frame_reference)
1. frame元素的name属性或者ID属性
2. 索引值(从0开始)
3. frame所对应的WebElement : driver.find_element_by_tag_name("iframe")
切换回主html里面: driver.switch_to.default_content()
- 清除元素中的字符串
clear方法 : input1.clear()
- 获取文本框中输入的内容
get_attribute() : 获取input元素里面输入的文本内容
input1.get_attribute(‘value‘)
- 单选框
type = "radio"
click()方法选择 : 不管原来该元素是否选中,直接去点击该元素没有问题都可以确保该单选框选中
- 勾选框
type = "checkbox"
click()方法选择
is_selected()方法来获取选择的状态:
True :已经选中
False:未选中
- 复选框
select,有multiple可以多选,不写则单选
可以用selenium的Select类
导入类: from selenium.webdriver.support.ui import Select
方法deselect_all() : 清掉所有选中的元素
方法select_by_visible_text("值"):根据复选框中文本信息选中
实例如下:
#导入Select类 from selenium.webdriver.support.ui import Select #获得相应的WebElement select = Select(driver.find_element_by_id("multi")) #去除选择所有的选项 select.deselect_all() select.select_by_visible_text("雅阁") select.select_by_visible_text("宝马 740") #获得相应的WebElement select = Select(driver.find_element_by_id("single")) select.select_by_visible_text("男")
- 获取标题
driver.title
- 获取当前url
driver.current_url
- 简单的断言
assert driver.title == "松勤_百度搜索" --- 当前浏览器的标题是否是“松勤_百度搜索”
- 截屏
driver.get_screenshot_as_file(‘ssl.png‘) 括号里面填写文件名称,也可以固定保存路径
- 获取某一个元素当前的图片
ele=driver.find_element_by_cas_selector(‘img[class="d-flag"]‘)
ele.screenshot(r‘D:\yun.png‘)
以上是关于selenium获取元素内容,iframe切换,和常用方法的主要内容,如果未能解决你的问题,请参考以下文章
selenium定位当前处于那个iframe(frame)中
Selenium中web三大切换之iframe窗口及Alert(弹窗)切换
基于python实现UI自动化5. selenium实现获取页面元素属性(内容标题URL浏览器名称等)