selenium 用法总结

selemium 的安装


selemium 简单示例

from selenium import webdriver
#以下三种浏览器的作用是相同的
driver = webdriver.PhantomJS()   #无头浏览器,即没有界面的浏览器,
driver = webdriver.Firefox()     #火狐浏览器
driver = webdriver.Chrome()      #谷歌浏览器

#driver.get 方法将打开URL中填写的地址,注意,该操作自动打开火狐和谷歌浏览器界面
driver.get('https://www.xxx.com') 

print("网页的内容:",driver.page_source) #打印网页的内容

driver.close() #该语句只会关闭一个标签页
或者
driver.quit()  #该语句关闭整个浏览器

与页面交互

<input type="text" name="passwd" id="passwd-id" />

#通过下面的方法查找它
element = driver.find_element_by_id("passwd-id")
element = driver.find_element_by_name("passwd")
element = driver.find_element_by_xpath("//input[@id='passwd-id']")

element.send_keys("你好")  #在该文本框中输入“你好”


element.clear() #当输入一些文本时,这些输入框中可能原有的文本不会被自动清除掉,相反,你的输入会继续添加到已存在文本之后,可以通过该语句去清除input或者textarea元素中的内容

element.click()  #该语句是相当于鼠标的点击操作

在不同的窗口和框架之间移动

在不同的窗口之间移动

for handle in driver.window_handles:
    driver.switch_to_window(handle)

操作Cookies

获取当前 URL 下的Cookies值

driver.get_cookies()
**设置Cookies**
cookie = {‘name’ : ‘foo’, ‘value’ : ‘bar’}

driver.add_cookie(cookie)

等待页面加载完成

假设该 www.xxx.com页面的内容如下:

<input type="text" name="passwd" id="passwd-id" />

显式等待
第一种方式:等待一个确切的时间段,无论页面是否加载完成,都必须执行下一个操作

time.sleep(3)

第二种方式:只等待需要的时间。WebDriverWait结合ExpectedCondition 是实现的一种方式

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Firefox()
driver.get("http://www.xxx.com")
element = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.ID, "passwd-id"))

隐式等待
如果某些元素不是立即可用的,隐式等待是告诉WebDriver去等待一定的时间后去查找元素。 默认等待时间是0秒,一旦设置该值,隐式等待是设置该WebDriver的实例的生命周期

from selenium import webdriver

driver = webdriver.Firefox()
driver.implicitly_wait(10) # seconds
driver.get("http://www.xxx.com")
myDynamicElement = driver.find_element_by_id("passwd-id")

参考文档:http://selenium-python-zh.readthedocs.io/en/latest/

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值