Slenium入门
2024-09-03 21:50:46
selenium 为浏览器测试框架,可以调用浏览器webdriver模拟浏览器操作
360打开Chrome:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options url = “ ”
exe_data = r'C:\Users\lsk17\AppData\Local\360Chrome\Chrome\Application\360chrome.exe' # 浏览器根目录所在地
chrome_options = Options()
chrome_options.binary_location = exe_data browser = webdriver.Chrome(chrome_options=chrome_options)
browser.get(url)
html = browser.page_source # 获得页面源码
等待信息出现:
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait # 1. 强制等待 第一种也是最简单粗暴的一种办法就是强制等待sleep(xx)
# 2. 隐性等待 第二种办法叫隐性等待,implicitly_wait(xx)
# 需要特别说明的是:隐性等待对整个driver的周期都起作用,所以只要设置一次即可,我曾看到有人把隐性等待当成了sleep在用,走哪儿都来一下…
# 3. 显性等待 第三种办法就是显性等待,WebDriverWait,配合该类的until()和until_not()方法,就能够根据判断条件而进行灵活地等待了。 from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait try:
WebDriverWait(driver, 20, 0.5).until(EC.presence_of_element_located(By.LINK_TEXT, 'CSDN'))
print driver.find_element_by_link_text('CSDN').get_attribute('href')
finally:
driver.close()
EC.presence_of_element_located EC.text_to_be_present_in_element
在网页中获取信息:
element = driver.find_element_by_id()
element = driver.find_element_by_name()
element_list = driver.find_elements_by_id()
element = driver.find_elements_by_name()
element = driver.find_element_by_xpath("//input[@id="passwd-id"]")
element = driver.find_elements_by_xpath("//div[@id="passwd-id"]")
滑动滚动条:
#将滚动条移动到页面的底部
js="var q=document.documentElement.scrollTop=100000"
driver.execute_script(js)
time.sleep(3)
#将滚动条移动到页面的顶部
js="var q=document.documentElement.scrollTop=0"
driver.execute_script(js)
time.sleep(3)
#若要对页面中的内嵌窗口中的滚动条进行操作,要先定位到该内嵌窗口,在进行滚动条操作
js="var q=document.getElementById('id').scrollTop=100000"
driver.execute_script(js)
time.sleep(3)
Chrome_options.add_argument('--headless')设为无头模式,可以不弹出浏览器窗口
最新文章
- linux-15基础命令之-用户与用户组(useradd,userdel,usermod,passwd,groupadd)
- iOS开发UI篇—在UITableview的应用中使用动态单元格来完成app应用程序管理界面的搭建
- 【POJ】1279 Art Gallery
- sql server create foreign key
- 冒泡排序(python版)
- 71. Simplify Path
- [Golang]实习最后一天小纪念+并发爬虫小练习
- Codeforces 348A Mafia
- 离别&;#183;伤
- python—webshell_醉清风xf_新浪博客
- java代理理解
- Mysql 5.6到5.7的mysql.user改变
- 【省带宽、压成本专题】从产品架构来看,PCDN如何节流50%
- 允许浏览器下载exe.config文件
- eclipse快速向下复制行
- Java文件复制删除操作合集
- java SE 入门之控制语句&;方法&;递归算法(第五篇)
- .NET基础复习一
- MongoDB 操作手冊CRUD 删除 remove
- sublime for mac 注册码