selenium库使用详解

1. 声明浏览器对象

#分别对应五种浏览器类型
browser=webdriver.Chrome()
browser=webdriver.Firefox()
browser=webdriver.Edge()
browser=webdriver.PhantomJS()
browser=webdriver.Safari()

2. 访问页面

#使用get()方法来请求页面
browser.get('https://www.taobao.com')
with open('taobao.html','w',encoding='utf-8') as f:
 	f.write(browser.page_source)
browser.close()

3. 查找节点

3.1 单个节点find_element()

input_first=browser.find_element_by_id('q')
input_second=browser.find_element_by_css_selector('#q')

3.2 多个节点find_elements()

lis=browser.find_elements_by_css_selector('.service-bd li')
print(lis)#返回列表
browser.close()

4. 节点交互

输入文字时用send_keys(),清空文字时用clear()方法

input=browser.find_element_by_id('q')
input.send_keys('iPhone')
time.sleep(1)
input.clear()
input.send_keys('iPad')
button=browser.find_element_by_class_name('btn-search')
button.click()

5. 获取节点信息

5.1获取属性get_attribute()

类似于pyquery中的attr()方法

logo=browser.find_element_by_id('zh-top-link-logo')
print(logo.get_attibute('class'))
#选中对应的节点后,提取属性为class的属性值

5.2获取文本值text

类似于pyquery中的text()方法

input=browser.find_element_by_id('zh-top-add-question')
print(input.text)

5.3获取id值,位置,标签名和大小

input=browser.find_element_by_id('zh-top-add-question')
print(input.id)
print(input.location)
print(input.tag_name)
print(input.size)

6. 前进和后退

browser.get('https://www.baidu.com/')
browser.get('https://www.taobao.com/')
browser.back()
time.sleep(1)
browser.forward()
browser.close()

7. Cookies

selenium可以方便的对Cookies进行操作,获取删除添加等

browser.add_cookie({'name':'name'})#添加cookies信息
browser.delete_all_cookies()#删除所有cookies信息
browser.get_cookies()#获取cookies信息

8. 延时等待

8.1 隐式等待

browser.implicitly_wait(10)
#等待10秒钟后查询节点

8.2 显式等待

browser=webdriver.Chrome()
browser.get('https://www.baidu.com/')
wait=WebDriverWait(browser,10)
input=wait.until(EC.presence_of_element_located((By.ID,'q')))
#注意这里是双括号
button=wait.until(EC.presence_of_element_to_be_clickable((By.CSS_SELECTOR,'.btn-search')))

以下为几个常用的等待条件

#(1)将指定节点加载出来
EC.presence_of_element_located((By.CSS_SELECTOR,''))
#(2)将所有指定节点加载出来
EC.presence_of_elements_located((By.CSS_SELECTOR,''))
#(3)节点可点击
EC.presence_of_element_to_be_clickable((By.CSS_SELECTOR,''))
#(4)某个节点值包含某文字,str中为所包含的文字
EC.text_to_be_present_in_element((By.CSS_SELECTOR,''),str(page))

9. 节点操作方法

#模拟鼠标点击对应节点
button.click()
#通过browser获取网页源代码
browser.page-source
#利用input框,输入元素
input.send_keys('')
#清除input框中的信息
input.clear()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值