webdriver 常用方法

我这里用的是chromedriver 2.43.600210版+chrome 69.0.3497.100版

一、浏览器操作

1、控制浏览器前进后退——forword()、back()

from selenium import webdriver
driver = webdriver.Chrome()
#访问百度首页
first_url= 'http://www.baidu.com'
print("now access %s" %(first_url))
driver.get(first_url)
#访问新闻页面
second_url='http://news.baidu.com'
print("now access %s" %(second_url))
driver.get(second_url)
#返回(后退)到百度首页
print("back to  %s "%(first_url))
driver.back()
#前进到新闻页
print("forward to  %s"%(second_url))
driver.forward()
driver.quit()

2、控制浏览器刷新——refresh()

browser.refresh()

3、控制浏览器关闭退出

# 当开启多个时,关闭当前页面
browser.close()
# 退出并关闭所有页面驱动
browser.quit()

4、执行JavaScript语句

browser.execute_script("window.scrollTo(100,400)")

5、打印浏览器的版本号

print(browser.capabilities['version'])

>>>69.0.3497.100

6、设置页面加载的时间,如果超时会跑异常
webdriver的get方法会一直等待页面加载完毕才会进行后续操作,可如果一直加载的话,会导致后续操作无法进行。
可以通过set_page_load_time()方法来设定时间,

然后捕获timeout异常 并 通过执行Javascript来停止页面加载 window.stop()

from selenium.common.exceptions import TimeoutException
import time
from selenium import webdriver

startTime = time.time()
print("start time is: %0.3f"%startTime)
driver = webdriver.Chrome()
# 设定页面加载限制时间
driver.set_page_load_timeout(30)
driver.maximize_window()

try:
    driver.get('https://github.com/')
except TimeoutException:	
    print('time out after 30 seconds when loading page')
    #当页面加载时间超过设定时间,通过执行Javascript来stop加载,即可执行后续动作
    driver.execute_script('window.stop()')

二、窗口操作

1、通过像素设置浏览器的大小——browser.set_window_size(width,height)
2、设置窗口最大化——browser.maximize_window()
3、设置窗口最小化——browser.minimize_window()
4、获取当前窗口针对于Windows的位置的坐标x,y——browser.get_window_position()
5、设置当前窗口针对于Windows的位置的坐标x,y——browser.set_window_position(20,20)
6、返回当前操作的浏览器句柄——browser.current_window_handle
7、返回所有打开server的浏览器句柄——browser.window_handles

三、截取当前页面

 # 获取当前页面的二进制图片数据,需要自己去写入文件
driver.get_screenshot_as_png()
# as_png的上层封装,只需要传入图片名称自动写成图片
browser.get_screenshot_as_file('fileName.png')

四、其他

1、 返回页面源码
print(browser.page_source)
2、 返回tag标题
print(browser.title)
3、 返回当前Url
print(browser.current_url)
4、 获取浏览器名称 如:chrome
print(browser.name)
5、输入和点击

from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get("https://www.baidu.com")

# clear()清除文本
#如果直接输入内容,可能会与输入框的默认提示信息拼接,从而造成输入信息的错误,这是clear() 将会变得非常有用 
driver.find_element_by_id("kw").clear()

# send_keys (value): 模拟按键输入
driver.find_element_by_id("kw").send_keys("python")

# click()单击元素
driver.find_element_by_id("su").click()

time.sleep(2)
driver.quit()

6、提交

from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://www.baidu.com")

search_text = driver.find_element_by_id('kw')
search_text.send_keys('selenium')
search_text.submit()

driver.quit()

有时候 submit()可以与 click()方法互换来使用, submit()同样可以提交一个按钮, 但 submit()一般用于表单提交。

7、 size: 返回元素的尺寸。

8、 text: 获取元素的文本。

9、 get_attribute(name): 获得属性值。

10、is_displayed(): 设置该元素是否用户可见。

from selenium import webdriver

driver = webdriver.Chrome()
driver.get("http://www.baidu.com")

# 获得输入框的尺寸
size = driver.find_element_by_id('kw').size
print(size)

# 返回百度页面底部备案信息
text = driver.find_element_by_id("cp").text
print(text)

# 返回元素的属性值, 可以是 id、 name、 type 或其他任意属性
attribute = driver.find_element_by_id("kw").get_attribute('type')
print(attribute)

# 返回元素的结果是否可见, 返回结果为 True 或 False
result = driver.find_element_by_id("kw").is_displayed()
print(result)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值