selenium自动化

浏览器测试

https://chromedriver下载

[chrome://version/]   #查看版本

定位元素

from selenium import webdriver
from time import sleep
driver=webdriver.Chrome('C:selenuim_driverchromedriver.exe')
driver.get('http://www.baidu.com')
driver.find_element_by_id('kw').send_keys('selenium')
driver.find_element_by_id('su').click()
driver.find_e
sleep(3)
driver.quit()

webdriver属性

driver.name   #浏览器名称
driver.current_url 当前url
driver.title    当前页面标题
driver.page_source   当前页面源码
driver.current_window_handle   # 窗口句柄
driver.window_handles     #当前窗口所有句柄



from time import sleep

from selenium import webdriver
class TestCase():
    def __init__(self):
        self.driver=webdriver.Chrome()
        self.driver.get('http://www.baidu.com')
        self.driver.maximize_window()
        
    # 常用属性
    def test_prop(self):
        print(self.driver.name)
        print(self.driver.title)
        print(self.driver.current_url)
        print(self.driver.window_handles)  #窗口句柄
        print(self.driver.page_source)  #页面源码
        
    # 常用方法
    def test_method(self):
        self.driver.find_element_by_id('kw').send_keys('selenium')
        self.driver.find_element_by_id('su').click()
        sleep(2)
        self.driver.back()   #返回 
        self.driver.refresh()  #浏览器刷新
        self.driver.forward()   # 前进
        self.driver.close() # 关闭当前tab窗口
        self.driver.quit()      #退出浏览器
        self.driver.switch_to_frame()  #切换到frame
        self.driver.switch_to_active_element()   #切换到活动元素
if __name__ == '__main__':
    case=TestCase()
    case.test_prop()
    case.test_method()

webelement核心方法和属性

1、定位元素之后会返回一个webelement对象,该对象用来描述web页面上的一个元素
测试网站:sahitest.com/demo/

webelement.id   标识
webelement.size   宽高
webelement.rect  宽高和坐标
webelement.tag_name    标签名称
webelement.text        文本内容

webelement方法

当要找的标签没有id等属性时,可以使用xpath,比如form表单

from selenium import  webdriver
from time import  sleep
class TestCase():
    def __init__(self):
        self.driver=webdriver.Chrome()
        self.driver.get('http://sahitest.com/demo/linkTest.htm')

    def test_webelement_prop(self):
        e = self.driver.find_element_by_id('t1')
        print(type(e))
        print(e.size)   #input 框大小
        print(e.id)    #内部id唯一的
        print(e.tag_name)
        print(e.rect)   #包含界面坐标

    # 方法
    def test_webelement_method(self):
        e=self.driver.find_element_by_id('t1')
        e.send_keys('hello world')
        sleep(2)
        e.clear()

        print(e.get_attribute('type'))
        print(e.get_attribute('name'))
        print(e.get_attribute('value'))
        print(e.value_of_css_property('font'))
        print(e.value_of_css_property('color'))
        sleep(2)
        e.clear()

    def test_method2(self):
        form_element=self.driver.find_element_by_xpath('/html/body/form[1]')
        form_element.find_element_by_id('t1').send_keys('bala')
    
    # 实现窗口切换
    def test_windows(self):
        self.driver.find_element_by_link_text('新闻').click()
        windows=self.driver.window_handles

        for w in windows:
            self.driver.switch_to_window(w)
            sleep(2)
if __name__ == '__main__':
    case=TestCase()
    case.test_webelement_prop()
    case.test_method2()
微信:jinmuqq222
原文地址:https://www.cnblogs.com/jinmuqq222/p/14638759.html