当前位置:   article > 正文

webdriver 常用方法_webdriver常用方法

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()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

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

browser.refresh()
  • 1

3、控制浏览器关闭退出

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

4、执行JavaScript语句

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

5、打印浏览器的版本号

print(browser.capabilities['version'])

>>>69.0.3497.100
  • 1
  • 2
  • 3

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
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

二、窗口操作

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
  • 2
  • 3
  • 4

四、其他

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()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

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()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

有时候 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)

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/149891
推荐阅读
  

闽ICP备14008679号