

打开浏览器,打开网址
1、导入Selenium 的WebDriver 模块
2、打开浏览器,创建浏览器对象
3、打开百度
from selenium import webdriverdriver = webdriver.Chrome()driver.get(url="http://www.baidu.com")

隐式等待、显示等待、强制等待
1、隐式等待implicitly_wait :就是在创建Driver时,为浏览器对象创建一个等待时间,这个方法是得不到某个元素就等待一段时间,直到拿到某个元素位置。

从 implicitly_wait中可以看出,需要传一个等待时间参数time_to_wait,单位是秒,比如 implicitly_wait(10),代表隐式等待10秒。
注意:在使用隐式等待的时候,实际上浏览器会在你自己设定的时间内部断的刷新页面去寻找我们需要的元素。
from selenium import webdriverdriver = webdriver.Chrome()driver.get(url="http://www.baidu.com")driver.implicitly_wait(10)
2、显示等待WebDriverWait:显示等待的代码定义了等待条件,只有该条件触发,一般用于查找页面元素,在规定时间内找到了元素,则进行下一步操作,如果没有找到,则抛出异常。


上面是源码,下面是例子
from selenium import webdriver # 导入webdriverfrom selenium.webdriver.support.ui import WebDriverWait# 创建浏览器对象driverdriver = webdriver.Chrome() # 谷歌浏览器# driver = webdriver.Firefox() # 火狐浏览器# driver = webdriver.Ie() # IE浏览器# driver = webdriver.Edge() # Edge浏览器# 输入网址driver.get(url="http://www.baidu.com")# 隐式等待10秒driver.implicitly_wait(10)# 显式等待10秒,在这10秒中找元素就执行下一步,没有找到就抛出异常。比如在第3秒找到了,马上执行下一步element = WebDriverWait(driver, 10).until(lambda x: x.find_element_by_id("kw")) # kw是百度网页的一个元素# 强制等待10,找到和没找到都会等待10秒import timetime.sleep(10)
一般都是结合另一个模块来做页面模块expected_conditions判断元素可见
from selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as ECdriver = webdriver.Chrome()driver.get(url="http://www.baidu.com")try:WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.ID,'su')) # 元素是否可见)except:print("未找到元素")driver.quit()
3、强制等待,time.sleep()

操作浏览器
1、窗口大小剪裁 set_window_size()

import timefrom selenium import webdriver # 导入webdriver# 创建浏览器对象driverdriver = webdriver.Chrome() # 谷歌浏览器driver.get(url="http://www.baidu.com") # 输入网址driver.set_window_size(880, 960) # 设置窗口大小time.sleep(3) # 强制等待driver.quit() # 关闭浏览器
2、窗口最大化 maximize_window()
import timefrom selenium import webdriver # 导入webdriver# 创建浏览器对象driverdriver = webdriver.Chrome() # 谷歌浏览器driver.get(url="http://www.baidu.com") # 输入网址driver.maximize_window() # 窗口最大化time.sleep(3) # 强制等待driver.quit() # 关闭浏览器
3、页面刷新 refresh()
import timefrom selenium import webdriver # 导入webdriverdriver = webdriver.Chrome() # 谷歌浏览器driver.get(url="http://www.baidu.com")driver.refresh() # 刷新页面time.sleep(3)driver.quit()
4、前进和后退
前进:forward()
后退:back()
import timefrom selenium import webdriverdriver = webdriver.Chrome()driver.get(url="http://www.baidu.com")driver.get(url="https://www.cnblogs.com/")driver.back()driver.forward()time.sleep(3)driver.quit()
5、截屏,常用的 get_screenshot_as_file(),另外两个 get_screenshot_as_png()、 get_screenshot_as_base64()

import timefrom selenium import webdriver # 导入webdriver# 创建浏览器对象driverdriver = webdriver.Chrome() # 谷歌浏览器driver.get(url="http://www.baidu.com")driver.get_screenshot_as_file("test.png")time.sleep(3)driver.quit()


链接:https://www.cnblogs.com/jinbaobao/p/13889618.html
本文为51Testing经授权转载,转载文章所包含的文字来源于作者。如因内容或版权等问题,请联系51Testing进行删除
点击阅读☞Selenium那些值得再次巩固的知识


文章评论