WebDriver API 详解-初

WebDriver API 详解

这里列了一些WebDriver API 的详细步骤,共3部分,初级,中级,高级供参考,也可以直接使用


文章目录

  • WebDriver API 详解
  • 一、初级API 使用步骤
    • 1.访问某个网址
    • 2.网页的前进和后退
    • 3.刷新当前网页
    • 4.浏览器窗口最大化
    • 5.获取并设置当前窗口的位置
    • 6.获取并设置当前窗口的大小
    • 7.获取页面title属性值
    • 8.获取页面HTML源代码
    • 9.获取当前页面的URL地址
    • 10.获取页面元素的基本信息
    • 11.获取与切换浏览器窗口句柄
    • 12.判断页面元素是否可见
    • 13.判断页面元素是否可操作
    • 14.获取页面元素的属性
    • 15.获取页面元素的CSS属性值
    • 16.清空输入框的内容
    • 17.在输入框输入指定内容
    • 18.单击按钮
    • 19.双击某个元素
    • 20.断言页面源码中的关键字
  • 二、[中级API 使用步骤](https://blog.csdn.net/zhangguangyi520/article/details/112297489)
  • 三、高级API 使用步骤
  • 总结


一、初级API 使用步骤

1.访问某个网址

代码如下(示例):

#encoding = utf-8

from selenium import webdriver
import time

driver = webdriver.Chrome("D:\lupu_ui_autocation\driver\chromedriver.exe")

#访问某个网址

def test_visit_uil():
    global driver
    visit_uil = "http://www.sogo.com"
    driver.get(visit_uil)
    time.sleep(1)
    assert driver.title.find("搜狗搜索引擎") >= 0, "assert error"
    driver.quit()

if __name__ == "__main__":
    test_visit_uil()

2.网页的前进和后退

代码如下(示例):

#encoding = utf-8

from selenium import webdriver
import time

driver = webdriver.Chrome("D:\lupu_ui_autocation\driver\chromedriver.exe")

#网页的前进和后退

def test_visit_recent_uil():
    global driver
    visit_uil1 = "http://www.baidu.com"
    visit_uil2 = "http://www.sogou.com"
    driver.get(visit_uil1)
    time.sleep(1)
    driver.get(visit_uil2)
    time.sleep(1)
    driver.back()  #返回上次访问的百度网页-后退
    time.sleep(1)
    driver.forward()  #再次回到搜狐网页-前进
    driver.quit()

if __name__ == "__main__":
    test_visit_recent_uil()

3.刷新当前网页

代码如下(示例):

#encoding = utf-8

from selenium import webdriver
import time

driver = webdriver.Chrome("D:\lupu_ui_autocation\driver\chromedriver.exe")

#刷新当前网页

def test_refresh_current_page():
    global driver
    visit_uil = "http://www.baidu.com"
    driver.get(visit_uil)
    driver.refresh()   #刷新当前网页
    driver.quit()

if __name__ == "__main__":
    test_refresh_current_page()

4.浏览器窗口最大化

代码如下(示例):

#encoding = utf-8

from selenium import webdriver
import time

driver = webdriver.Chrome("D:\lupu_ui_autocation\driver\chromedriver.exe")

#浏览器窗口最大化

def test_maximize_window():
    global driver
    visit_uil = "http://www.baidu.com"
    driver.get(visit_uil)
    driver.maximize_window()   #页面最大化
    time.sleep(1)
    driver.quit()

if __name__ == "__main__":
    test_maximize_window()

5.获取并设置当前窗口的位置

代码如下(示例):

#encoding = utf-8

from selenium import webdriver
import time

driver = webdriver.Chrome("D:\lupu_ui_autocation\driver\chromedriver.exe")

#获取并设置当前窗口位置

def test_window_position():
    global driver
    visit_uil = "http://www.baidu.com"
    driver.get(visit_uil)
    position = driver.get_window_position() #获取当前浏览器在屏幕上的位置,返回字典对象
    print('横坐标为: ', position['x'])
    print('纵坐标为: ', position['y'])
    driver.set_window_position(x=200,y=400)  #设置当前浏览器纵横坐标
    time.sleep(1)
    print(driver.get_window_position())
    driver.quit()

if __name__ == "__main__":
    test_window_position()

6.获取并设置当前窗口的大小

代码如下(示例):

#encoding = utf-8

from selenium import webdriver
import time

driver = webdriver.Chrome("D:\lupu_ui_autocation\driver\chromedriver.exe")

#获取并设置当前窗口大小

def test_window_size():
    global driver
    visit_uil = "http://www.baidu.com"
    driver.get(visit_uil)
    sizeDict = driver.get_window_size() #获取当前浏览器窗口的大小,返回字典对象
    print('窗口宽为: ', sizeDict['width'])
    print('窗口高为: ', sizeDict['height'])
    driver.set_window_size(width=800,height=400,windowHandle='current')  #设置当前浏览器窗口大小
    time.sleep(1)
    print(driver.get_window_size(windowHandle='current'))
    driver.quit()

if __name__ == "__main__":
    test_window_size()

7.获取页面title属性值

代码如下(示例):

#encoding = utf-8

from selenium import webdriver
import time

driver = webdriver.Chrome("D:\lupu_ui_autocation\driver\chromedriver.exe")

#获取页面的title属性值

def test_get_title():
    global driver
    visit_uil = "http://www.baidu.com"
    driver.get(visit_uil)
    title = driver.title #获取当前页面的title属性值
    print('title属性值为: ', title)
    try:
        assert title=='百度一下,你就知道',"页面title属性值错误"
    except Exception as e:
        driver.quit()
        raise e
    driver.quit()

if __name__ == "__main__":
    test_get_title()

8.获取页面HTML源代码

代码如下(示例):

#encoding = utf-8

from selenium import webdriver
import time

driver = webdriver.Chrome("D:\lupu_ui_autocation\driver\chromedriver.exe")

#获取页面html源代码

def test_get_page_source():
    global driver
    visit_uil = "http://www.baidu.com"
    driver.get(visit_uil)
    page_source = driver.page_source #获取当前页面的源代码
    print('html源代码为: ', page_source)
    driver.quit()

if __name__ == "__main__":
    test_get_page_source()

9.获取当前页面的URL地址

代码如下(示例):

#encoding = utf-8

from selenium import webdriver
import time

driver = webdriver.Chrome("D:\lupu_ui_autocation\driver\chromedriver.exe")

#获取当前页面的URL

def test_get_current_page_url():
    global driver
    visit_uil = "http://www.baidu.com"
    driver.get(visit_uil)
    current_page_url = driver.current_url #获取当前页面的URL
    print('当前页面URL为: ', current_page_url)
    driver.quit()

if __name__ == "__main__":
    test_get_current_page_url()

10.获取页面元素的基本信息

代码如下(示例):

#encoding = utf-8

from selenium import webdriver
import time

driver = webdriver.Chrome("D:\lupu_ui_autocation\driver\chromedriver.exe")

#获取页面元素的基本信息

def test_get_basic_info():
    global driver
    visit_uil = "http://www.baidu.com"
    driver.get(visit_uil)
    element = driver.find_element_by_xpath("//a[text()='新闻']") #通过xpath定位元素
    print('元素的标签名: ', element.tag_name)  #获取页面元素的标签名
    print('元素的size: ', element.size)   #获取页面元素的大小
    print('元素的text: ', element.text)    #获取页面元素的文本内容
    driver.quit()

if __name__ == "__main__":
    test_get_basic_info()

11.获取与切换浏览器窗口句柄

代码如下(示例):

#encoding = utf-8

from selenium import webdriver
import time

driver = webdriver.Chrome("D:\lupu_ui_autocation\driver\chromedriver.exe")

#获取与切换浏览器窗口句柄

def test_operate_window_handle():
    global driver
    visit_uil = "http://www.baidu.com"
    driver.get(visit_uil)
    now_handle = driver.current_window_handle  #获取当前窗口句柄
    print('当前窗口句柄为: ', now_handle)
    driver.find_element_by_id('kw').send_keys('新闻')   #通过ID定位输入框输入‘新闻’
    driver.find_element_by_id('su').click()  #通过ID定位搜索按钮点击
    time.sleep(2)
    driver.find_element_by_xpath("//div[@id='3']//a").click() #通过xpath定位到其中一条新闻点击
    time.sleep(2)
    all_handle = driver.window_handles   #获取所有窗口句柄
    print('当前打开的句柄为: ',driver.window_handles[-1])  #获取当前打开的句柄可以用window_handles[-1]来获取
    print('目前所有的句柄为 ',all_handle)
    for handle in all_handle:  #遍历句柄
        if handle != now_handle:
            print(handle)
    driver.quit()

if __name__ == "__main__":
    test_operate_window_handle()

12.判断页面元素是否可见

代码如下(示例):

#encoding = utf-8

from selenium import webdriver
import time

driver = webdriver.Chrome("D:\lupu_ui_autocation\driver\chromedriver.exe")

#判断页面元素是否可见

def test_get_element_is_displayed():
    global driver
    visit_uil = "http://www.baidu.com"
    driver.get(visit_uil)
    div1=driver.find_element_by_xpath("//input[@id='kw']")   #通过xpath定位到id=kw 的input标签元素
    print(div1.is_displayed()) #判断input标签元素是否可见,不可见的元素也存在于DOM树中,driver也可以找到,返回true,false
    driver.quit()

if __name__ == "__main__":
    test_get_element_is_displayed()

13.判断页面元素是否可操作

代码如下(示例):

#encoding = utf-8

from selenium import webdriver
import time

driver = webdriver.Chrome("D:\lupu_ui_autocation\driver\chromedriver.exe")

#判断页面元素是否可操作

def test_get_element_is_enabled():
    global driver
    visit_uil = "http://www.baidu.com"
    driver.get(visit_uil)
    div1=driver.find_element_by_xpath("//input[@id='kw']")   #通过xpath定位到id=kw 的input标签元素
    print(div1.is_enabled()) #判断input标签元素是否可操作,返回true,false,元素添加disabled属性后,元素将不可操作
    driver.quit()

if __name__ == "__main__":
    test_get_element_is_enabled()

14.获取页面元素的属性

代码如下(示例):

#encoding = utf-8

from selenium import webdriver
import time

driver = webdriver.Chrome("D:\lupu_ui_autocation\driver\chromedriver.exe")

#获取页面元素属性

def test_get_element_attribute():
    global driver
    visit_uil = "http://www.sogou.com"
    driver.get(visit_uil)
    searchbox=driver.find_element_by_id("query")   #通过id 定位到搜索框
    print(searchbox.get_attribute('name')) #获取搜索框的name属性
    searchbox.send_keys('新闻')
    print(searchbox.get_attribute('value'))  # 获取搜索框的value属性
    driver.quit()

if __name__ == "__main__":
    test_get_element_attribute()

15.获取页面元素的CSS属性值

代码如下(示例):

#encoding = utf-8

from selenium import webdriver
import time

driver = webdriver.Chrome("D:\lupu_ui_autocation\driver\chromedriver.exe")

#获取页面元素的CSS属性值

def test_get_element_css_value():
    global driver
    visit_uil = "http://www.baidu.com"
    driver.get(visit_uil)
    searchbox=driver.find_element_by_id("kw")   #通过id 定位到搜索框
    #通过页面元素对象的value_of_css_property()方法获取元素的CSS属性值
    print('搜索输入框的高度是: ',searchbox.value_of_css_property('height'))
    print('搜索输入框的宽度是: ',searchbox.value_of_css_property('width'))
    font = searchbox.value_of_css_property('font-family')
    print(font)
    driver.quit()

if __name__ == "__main__":
    test_get_element_css_value()

16.清空输入框的内容

代码如下(示例):

#encoding = utf-8

from selenium import webdriver
import time

driver = webdriver.Chrome("D:\lupu_ui_autocation\driver\chromedriver.exe")

#清空输入框中的内容

def test_clear_input_box_text():
    global driver
    visit_uil = "http://www.baidu.com"
    driver.get(visit_uil)
    searchbox=driver.find_element_by_id("kw")   #通过id 定位到搜索框
    searchbox.send_keys('新闻')
    time.sleep(3)
    searchbox.clear()  #清空输入框
    time.sleep(3)
    driver.quit()

if __name__ == "__main__":
    test_clear_input_box_text()

17.在输入框输入指定内容

代码如下(示例):

#encoding = utf-8

from selenium import webdriver
import time

driver = webdriver.Chrome("D:\lupu_ui_autocation\driver\chromedriver.exe")

#在输入框输入指定内容

def test_send_text_to_box():
    global driver
    visit_uil = "http://www.baidu.com"
    driver.get(visit_uil)
    searchbox=driver.find_element_by_id("kw")   #通过id 定位到搜索框
    searchbox.clear()
    searchbox.send_keys('新闻')  #输入指定的内容
    time.sleep(3)
    driver.quit()

if __name__ == "__main__":
    test_send_text_to_box()

18.单击按钮

代码如下(示例):

#encoding = utf-8

from selenium import webdriver
import time

driver = webdriver.Chrome("D:\lupu_ui_autocation\driver\chromedriver.exe")

#单击按钮

def test_click_button():
    global driver
    visit_uil = "http://www.baidu.com"
    driver.get(visit_uil)
    searchbox=driver.find_element_by_id("kw")   #通过id 定位到搜索框
    searchbox.send_keys('新闻')  # 输入指定的内容
    button=driver.find_element_by_id('su')  # 通过ID定位搜索按钮
    button.click()  #单击按钮
    time.sleep(3)
    driver.quit()

if __name__ == "__main__":
    test_click_button()

19.双击某个元素

代码如下(示例):

#encoding = utf-8

from selenium import webdriver
from selenium.webdriver import ActionChains   #支持双击的模块
import time

driver = webdriver.Chrome("D:\lupu_ui_autocation\driver\chromedriver.exe")

#双击某个元素

def test_double_click():
    global driver
    visit_uil = "http://www.baidu.com"
    driver.get(visit_uil)
    searchbox=driver.find_element_by_id("kw")   #通过id 定位到搜索框
    searchbox.send_keys('新闻')  # 输入指定的内容
    time.sleep(2)
    action_chains = ActionChains(driver)  #创建双击动作链实例
    button=driver.find_element_by_id('su')  # 通过ID定位搜索按钮
    action_chains.double_click(button).perform() #双击并执行
    time.sleep(3)
    driver.quit()

if __name__ == "__main__":
    test_double_click()

20.断言页面源码中的关键字

代码如下(示例):

#encoding = utf-8

from selenium import webdriver
import time

driver = webdriver.Chrome("D:\lupu_ui_autocation\driver\chromedriver.exe")

#断言页面源码中的关键字

def test_assert_key_word():
    global driver
    visit_uil = "http://www.baidu.com"
    driver.get(visit_uil)
    searchbox=driver.find_element_by_id("kw")   #通过id 定位到搜索框
    searchbox.send_keys('新闻')  # 输入指定的内容
    driver.find_element_by_id('su').click()  # 通过ID定位搜索按钮点击
    time.sleep(2)
    assert '新闻' in driver.page_source,'关键字断言错误'   #断言关键字
    driver.quit()

if __name__ == "__main__":
    test_assert_key_word()

二、中级API 使用步骤

三、高级API 使用步骤


总结

以上20个API只是初级API,下一篇我们说说中级API的详细步骤,供参考。中级API主要是操作表单,也是常用的API,我们必须掌握的API。

你可能感兴趣的:(WebDriver,API,selenium,api,python)