zoukankan      html  css  js  c++  java
  • selenium获取元素信息的方法

    获取元素

    1.获取当前页面的Url函数

    方法:current_url
    实例:
    driver.current_url

    2.获取元素坐标

    方法:location

    解释:首先查找到你要获取元素的,然后调用location方法

    实例:

    driver.find_element_by_xpath("//*[@id='tablechart']/tbody/tr[14]/td[9]").location

    3.表单的提交

    方法:submit

    解释:查找到表单(from)直接调用submit即可

    实例:

    driver.find_element_by_id("form1").submit()

    4.获取CSS的属性值

    方法:value_of_css_property(css_name)
    实例:
    driver.find_element_by_css_selector("input.btn").value_of_css_property("input.btn")

    5.获取元素的属性值

    方法:get_attribute(element_name)
    实例:
    driver.find_element_by_id("sellaiyuan").get_attribute("sellaiyuan")

    6.判断元素是否被选中

    方法:is_selected()
    实例:
    driver.find_element_by_id("form1").is_selected()

    7.返回元素的大小

    方法:size
    实例:
    driver.find_element_by_id("iptPassword").size
    返回值:{'width': 250, 'height': 30}

    8.判断元素是否显示

    方法:is_displayed()
    实例:
    driver.find_element_by_id("iptPassword").is_displayed()

    9.判断元素是否被使用

    方法:is_enabled()
    实例:
    driver.find_element_by_id("iptPassword").is_enabled()

    10.获取元素的文本值

    方法:text
    实例:driver.find_element_by_id("iptUsername").text

    11.元素赋值

    方法:send_keys(*values)
    实例:
    driver.find_element_by_id("iptUsername").send_keys('admin')
    注意如果是函数需要增加转义符u,eg.
    driver.find_element_by_id("iptUsername").send_keys(u'青春')

    12.返回元素的tagName

    方法:tag_name
    实例:
    driver.find_element_by_id("iptUsername").tag_name

    13.删除浏览器所以的cookies

    方法:delete_all_cookies()
    实例:
    driver.delete_all_cookies()

    14.删除指定的cookie

    方法:delete_cookie(name)
    实例:deriver.delete_cookie("my_cookie_name")

    15.关闭浏览器

    方法:close()
    实例:driver.close()

    16.关闭浏览器并且推出驱动程序

    方法:quit()
    实例:driver.quit()

    17.返回上一页

    方法:back()
    实例:driver.back()

    18.设置等待超时

    方法:implicitly_wait(wait_time)
    实例:driver.implicitly_wait(30)

    19.浏览器窗口最大化

    方法:maximize_window()
    实例:driver.maximize_window()

    20.查看浏览器的名字

    方法:name
    实例:drvier.name

    处理弹窗

    参考

    1.alert窗口处理

    
    import time
    from selenium import webdriver
     
    """
    处理alert弹窗
    """
    driver = webdriver.Chrome('F:PyCharmProjectTestFrameworkdriverschromedriver.exe')
    driver.get('file:///C:/Users/Uker/Desktop/seleniumHTML/alert.html')
    time.sleep(1)
    # 获取alert对话框的按钮,点击按钮,弹出alert对话框
    driver.find_element_by_id('alert').click()
    time.sleep(1)
    # 获取alert对话框
    dig_alert = driver.switch_to.alert
    time.sleep(1)
    # 打印警告对话框内容
    print(dig_alert.text)
    # alert对话框属于警告对话框,我们这里只能接受弹窗
    dig_alert.accept()
    time.sleep(1)
     
    driver.quit()
    

    2.confirm窗口处理

    import time
    from selenium import webdriver
     
    """
    处理confirm对话框
    """
    # 获取confirm对话框的按钮,点击按钮,弹出confirm对话框
    driver.find_element_by_id('confirm').click()
    time.sleep(1)
    # 获取confirm对话框
    dig_confirm = driver.switch_to.alert
    time.sleep(1)
    # 打印对话框的内容
    print(dig_confirm.text)
    # 点击“确认”按钮
    dig_confirm.accept()
    # 点击“取消”按钮
    # dig_confirm.dismiss()
    time.sleep(1)
     
    driver.quit()
    

    3.prompt窗口处理

    
    import time
    from selenium import webdriver
     
    """
    处理prompt对话框
    """
    # 获取prompt对话框的按钮,点击按钮,弹出prompt对话框
    driver.find_element_by_id('prompt').click()
    time.sleep(1)
    # 获取prompt对话框
    dig_prompt = driver.switch_to.alert
    time.sleep(1)
    # 打印对话框内容
    print(dig_prompt.text)
    # 在弹框内输入信息
    dig_prompt.send_keys("Loading")
    # 点击“确认”按钮,提交输入的内容
    dig_prompt.accept()
    time.sleep(1)
     
    driver.quit()
    

    鼠标

    1.鼠标悬停

    #处理鼠标悬停
    #识别需要悬停的元素
    ele = driver.find_element_by_xpath(r'/html/body/div[1]/section/header/div/div[2]/ul/li[14]/div')
    #鼠标移到悬停元素上
    ActionChains(driver).move_to_element(ele).perform()
    

    常用方法

    driver.getTitle();//获取标题
    driver.getCurrentUrl();//获取当前页面url
    driver.getPageSource();//获取页面资源
    driver.switchTo().window(currentwindow);//跳转到currentwindow句柄页面
    driver.manage().window().maximize();//最大化
    driver.manage().addCookie(Cookie cookie);//添加删除cookie
    driver.switchTo().alert();切换到alert窗口
    

    1.获取页面

    String currentwindow = driver.getWindowHandle();//获取当前页面句柄
    那么如果打开了多个窗口,就需要用如下函数获取所有句柄
    Set handles = driver.getWindowHandles();
    获取句柄有多中方式,set集合迭代器Iterator、for循环 我将用两种方式分别实现

    Interator <string> it = handles.iterator();
    while(it.hasNext()){
     handle = it.next(); 
     if (currentwindow.equals(handle)){
     //此处根据自己的条件灵活的判断。
        continue;
       }
       WebDriver window = driver.switchTo().window(handle);//切换   注意,这里要根据你判断的条件来确定你切换的位置。请看for循环
      }
      for (String handle : handles){
        WebDriver window = driver.switchTo().window(handle);
        if (window.getTitle().equals("百度一下,你就知道")) {
           System.out.println("title,url = " + window.getTitle() + ","+ window.getCurrentUrl());
        }
     }
    
  • 相关阅读:
    初学C++到底应该用什么工具比较合适——工具简析
    便携式办公套件LibreOffice Portable 4.0.1
    Hibernate和JPA之间的联系
    央视《家有妙招》整理版,共250招,值得永远收藏
    思科Vs华为:不可避免的对决
    Facebook手机刺激了谁?
    Facebook利用Home平台加速进军移动领域
    英特尔Haswell处理器已出货 预计6月推出
    苹果自建街景地图 或与谷歌针锋相对
    图片链接
  • 原文地址:https://www.cnblogs.com/zhaobowen/p/14106957.html
Copyright © 2011-2022 走看看