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‘)

原文地址:https://www.cnblogs.com/yangguanghuayu/p/11496686.html

时间: 2024-07-30 11:38:27

selenium获取元素内容,iframe切换,和常用方法的相关文章

selenium获取元素后用click()点击没有作用,用Keys.ENTER就可以成功

selenium获取元素后用click()点击没有作用,用键盘输入enter(Keys.ENTER)就可以成功 #coding = utf-8 from selenium import webdriver from selenium.webdriver.common.keys import Keys driver = webdriver.Firefox() driver.get("http://www.baidu.com") driver.find_element_by_xpath(&

JS获取元素内容属性以及修改

1.通过document对象 2.通过element元素对象的方法 3.获取元素的几种方法 圈住的三个方法是获取元素,需要传一个字符串参数.后面两个方法获取之后需要遍历! 创建文本节点:document.createTextNode() 创建元素节点:document.createElement() 例如:

selenium获取元素

1.获取窗口titledriver.title2.获取urldriver.current_url3.获取窗口截图driver.get_screenshot_as_file('window.png')4.获取元素截图ele.screenshot('ele.png')5.刷新页面driver.refresh()6.窗口最大化driver.maximize_window()7.窗口最小化driver.minimize_window()8.设置窗口大小(宽,高)driver.set_window_siz

Selenium获取当前窗口句柄与切换回原窗口句柄

Selenium通过window_handles获取当前窗口句柄,进行页面元素操作 切换回原窗口句柄,进行元素操作 代码如下:(python版) __author__ = 'liuke' import unittest,time,re from selenium import webdriver class Untitled(unittest.TestCase): def setUp(self): self.driver = webdriver.Chrome() self.driver.impl

jQuery基础:获取元素内容

1.html():返回原始HTML文档.但是在IE中可能存在兼容性,具体如下 原理:使用innerHTML() <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <body> <div id="box">

js获取元素宽高

只说ie8+的浏览器的方法. 在转vue之前,一直使用jquery来获取元素的高度,最近转vue,发现了一个问题.使用vue的时候,部分操作需要在mounted这个生命周期里面去做,官网对mounted的解释是: 如果不在vm.$nextTick里面做操作的时候,是很有可能获取不到组件内部元素的宽高的.刚开始的时候,我没有仔细看官网,所以在mounted里面是直接获取不到子孙元素的宽高的. 后来,看了iview的一个组件的源码,看到了getComputedStyle方法获取宽高,对getComp

Selenium 获取隐藏元素的内容

第一种 先获取元素通过 属性获取 WebElement webElemt= webElement.findElement(By.xpath("//*[@class='xxxxxx]/a")); //在ie下使用innerText 在火狐下使用textContent String linktext = webElemt.getAttribute("innerText"); 第二种 通过js获取 WebElement element = ...; ((Javascrip

python selenium中iframe切换、window切换方法

一.selenium中iframe切换方法: 方法一:switch_to.frame frame函数中提供了三种定位方法: driver.switch_to.frame('frame_name') driver.switch_to.frame(1) driver.switch_to.frame(driver.find_elements_by_tag_name("iframe")[0]) 以腾讯课堂为例: from selenium import webdriver from time

selenium获取多窗口句柄并一一切换至原窗口句柄(三个窗口)

网上有很多是selenium基于python来获取两个窗口句柄与切换,本文实现用python+selenium获取多窗口句柄并一一切换至原窗口句柄(三个窗口),且在每个窗口下进行一个搜索或翻译,然后截图. 代码如下: 1 # coding=utf-8 2 from selenium import webdriver 3 import time 4 5 driver = webdriver.Chrome() 6 driver.maximize_window() # 窗口最大化 7 8 driver