赞
踩
我这里用的是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)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。