[Selenium][Notes]Day2:浏览器常用属性和方法

391 阅读1分钟
WebDriver常用属性:
#属性属性描述
1driver.name浏览器名称
2driver.current_url当前Url
3driver.title当前页面标题
4driver.page_source当前页面源码
5driver.current_window_handle窗口句柄
6driver.window_handles当前窗口所有句柄
WebElement常用方法:
#方法方法描述
1driver.back()浏览器后退
2driver.forward()浏览器前进
3driver.refresh()浏览器刷新
4driver.close()关闭当前窗口
5driver.quit()退出浏览器
6driver.switch_to.frame()切换到frame
7driver.switch_to.alert切换到alert
8driver.switch_to.active_element()切换到活动元素
WebElement常用属性:
#属性属性描述
1id标识
2size宽高
3rect宽高和坐标
4tag_name标签名称
5text文本内容
WebElement常用方法:
#方法方法描述
1send_keys()输入内容
2clear()清空内容
3click()单击
4get_attribute()获得属性值
5is_selected()是否被选中
6is_enabled()是否可用
7is_displayed()是否显示
8value_of_css_property()css属性值
Code:
from selenium import webdriver
from time import sleep
from selenium.webdriver.remote.webelement import WebElement

class TestCase1(object):
    def __init__(self):
        self.driver = webdriver.Chrome()
        self.driver.get('http://www.baidu.com')
    
    def test_prop(self):
        print(self.driver.name)  # 浏览器名称
        print(self.driver.current_url)  # 当前url
        print(self.driver.title)  # 当前页面标题
        print(self.driver.window_handles)  # 窗口句柄
        print(self.driver.current_window_handle)  # 当前窗口句柄
        print(self.driver.page_source)  # 当前页面源码
        self.driver.quit()

    def test_method(self):
        self.driver.find_element_by_id('kw').send_keys('GitHub')
        self.driver.find_element_by_id('su').click()
        sleep(2)
        self.driver.back()  # 后退
        sleep(2)
        self.driver.refresh()  # 当前页面刷新
        sleep(2)
        self.driver.forward()  # 前进
        sleep(2)
        self.driver.close()  # 关闭当前tab
        self.driver.quit()  # 退出浏览器
        print('Pass')

class TestCase2(object):
    def __init__(self):
        self.driver = webdriver.Chrome()
        # http://sahitest.com/demo/ 练习Selenium的URL
        self.driver.get('http://sahitest.com/demo/linkTest.htm')

    def test_webelement_prop(self):
        e = self.driver.find_element_by_id('t1')
        e1 = WebElement;
        print(type(e))  # 查看源码
        print(e.id)  # 标识(唯一)
        print(e.size)  # 宽高
        print(e.rect)  # 宽高和坐标
        print(e.text)  # 文本内容
    
    def test_webelement_method(self):
        e = self.driver.find_element_by_id('t1')
        e.send_keys('Hello world')  # 输入内容
        sleep(2)
        print(e.get_attribute('type'))  # 获取input的各属性
        print(e.get_attribute('name'))
        print(e.get_attribute('value'))
        e.clear()  # 清空内容
        print(e.value_of_css_property('font'))
        print(e.value_of_css_property('color'))
        # self.driver.find_element_by_class_name('JSubmit('2');return false;').click()
        self.driver.quit()
    def test_method2(self):
        form_element = self.driver.find_element_by_xpath('/html/body/form[1]')  # 通过from表单进行元素定位
        form_element.find_element_by_id('t1').send_keys('Hello world')
        sleep(2)
        self.driver.quit()

if __name__ == '__main__':
    case1 = TestCase1()
    case2 = TestCase2()
    # case1.test_prop()
    # case1.test_method()
    # case2.test_webelement_method()
    case2.test_method2()