这里列了一些WebDriver API 的详细步骤,共3部分,初级,中级,高级供参考,也可以直接使用
代码如下(示例):
#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()
代码如下(示例):
#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()
代码如下(示例):
#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()
代码如下(示例):
#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()
代码如下(示例):
#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()
代码如下(示例):
#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()
代码如下(示例):
#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()
代码如下(示例):
#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()
代码如下(示例):
#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()
代码如下(示例):
#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()
代码如下(示例):
#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()
代码如下(示例):
#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()
代码如下(示例):
#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()
代码如下(示例):
#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()
代码如下(示例):
#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()
代码如下(示例):
#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()
代码如下(示例):
#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()
代码如下(示例):
#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()
代码如下(示例):
#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()
代码如下(示例):
#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()
以上20个API只是初级API,下一篇我们说说中级API的详细步骤,供参考。中级API主要是操作表单,也是常用的API,我们必须掌握的API。