网站建设项目需求分析,网站导航如何用响应式做,制作网站的公司(深圳),垦利县建设局网站一、安装Selenium
pip install Selenium
二、初始化浏览器
Chrome 是初始化谷歌浏览器Firefox 是初始化火狐浏览器Edge 是初始化IE浏览器PhantomJS 是一个无界面浏览器。
from selenium import webdriverdriver webdriver.Chrome()
三、设置浏览器大小
maximize_window …一、安装Selenium
pip install Selenium
二、初始化浏览器
Chrome 是初始化谷歌浏览器Firefox 是初始化火狐浏览器Edge 是初始化IE浏览器PhantomJS 是一个无界面浏览器。
from selenium import webdriverdriver webdriver.Chrome()
三、设置浏览器大小
maximize_window 最大化窗口
set_window_size 自定义窗口大小
from selenium import webdriverdriver webdriver.Chrome()
driver.maximize_window()
四、访问页面
from selenium import webdriverdriver webdriver.Chrome()driver.get(https://www.baidu.com)
五、定位元素
定位元素的基本方法如下
定位一个元素定位多个元素解释find_element_by_idfind_elements_by_id通过元素id定位find_element_by_namefind_elements_by_name通过元素name定位find_element_by_xpathfind_elements_by_xpath通过xpath表达式定位find_element_by_link_textfind_elements_by_link_tex通过完整超链接定位find_element_by_partial_link_textfind_elements_by_partial_link_text通过部分链接定位find_element_by_tag_namefind_elements_by_tag_name通过标签定位find_element_by_class_namefind_elements_by_class_name通过类名进行定位find_elements_by_css_selectorfind_elements_by_css_selector通过css选择器进行定位
实例演示: 找到百度首页的输入框
from selenium import webdriverdriver webdriver.Chrome()
driver.get(https://www.baidu.com)
driver.find_element_by_id(kw)
六、定位元素的另一种写法
需引入By模块
from selenium import webdriver
from selenium.webdriver.common.by import Bydriver webdriver.Chrome()
driver.get(https://www.baidu.com)
driver.find_element(By.ID, kw)
七、元素交互 方法 解释 click()点击某个元素send_keys(输入的值)模拟输入clear()清除操作submit()提交表单get_attribute(name)获取元素的属性值location获取元素的位置text获取元素的文本值size获取元素的大小id获取元素的id值tag_name获取元素的标签名
实例演示: 在百度输入框中输入我是autofelix并点击搜索按钮
from selenium import webdriverdriver webdriver.Chrome()
driver.get(https://www.baidu.com)
driver.find_element_by_id(kw).send_keys(我是autofelix)
driver.find_element_by_id(su).click()
八、执行js
from selenium import webdriverdriver webdriver.Chrome()
driver.maximize_window()driver.get(https://www.baidu.com)js_sql document.getElementById(kw).value 我是autofelixdriver.execute_script(js_sql)
九、Frame操作
网页中frame的话需要执行切入切出操作switch_to.from(子iframe的id名称) 切入switch_to.parent_frame(父iframe的id名称) 切出
from selenium import webdriverdriver webdriver.Chrome()
driver.maximize_window()driver.get(https://www.baidu.com)//这个网址并没有iframe,我臆测有,你们看看就行
driver.switch_to.frame(我臆测出来的iframe)
十、cookie的操作
方法说明delete_all_cookies()删除当前页面所有cookiesget_cookie(name)获取指定cookie值get_cookies()获取当前页面所有cookies值add_cookie()设置cookie值
十一、选项卡管理
方法解释window_handles保存所有选项卡的元组switch_to.window()切换选项卡
from selenium import webdriverdriver webdriver.Chrome()
driver.maximize_window()driver.get(https://www.baidu.com)driver.delete_all_cookies()
driver.add_cookie({name: name, domain: .baidu.com, value: autofelix})
十二、鼠标事件
鼠标事件需要引入ActionChains模块
方法说明move_to_element(above)鼠标右击double_click()鼠标双击drag_and_drop()左键按住拖动perform()动作存储
实例演示: 滑动滑块验证码
from selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC# 初始化谷歌浏览器
driver webdriver.Chrome()# 最大化窗口
driver.maximize_window()# 打开头条登陆网址
driver.get(https://sso.toutiao.com)# 等待某个元素是否出现
WebDriverWait(self.driver, 10).until(EC.text_to_be_present_in_element((By.XPATH, //*[idmobile-code-get]/span), u发送)
)# 实例化鼠标操作
action ActionChains(self.driver)# 按住滑块
action.click_and_hold(self.driver.find_element_by_xpath(//*[idcaptcha_container])).perform()# 将滑块移动x的距离
action.move_by_offset(xoffsetx, yoffset0).perform()# 释放滑块
action.release().perform()
十三、等待
隐氏等待如果到一定时间指定的元素还没有出现进程不会阻塞但是到指定时间还没有找到就会抛出异常
from selenium import webdriverdriver webdriver.Chrome()
driver.implicitly_wait(10)driver.get(https://www.baidu.com)
显示等待如果在一定时间内指定的元素没有出现进程会阻塞在这里如果到指定时间还没有找到就会抛出异常
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as ECdriver webdriver.Chrome()
driver.implicitly_wait(10)driver.get(https://www.baidu.com)
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, kw))
)
十四、前进、后退和刷新
back 后退forward 前进refresh 刷新浏览器
from selenium import webdriver
driver webdriver.Chrome()
driver.get(https://www.baidu.com)
driver.get(https://www.taobao.com)
driver.get(https://www.jd.com)driver.back()
driver.forward()
driver.refresh()
十五、关闭浏览器
close 关闭当前标签页quit 关闭整个浏览器
from selenium import webdriver
driver webdriver.Chrome()
driver.get(https://www.baidu.com)
//打开百度页面后,关闭整个浏览器
driver.quit()