python3爬虫攻略:selenium+phantomjs二进宫

一:前言

上一篇文章讲了下selenium+phantomjs进行简单模拟网站登录,这一篇我们就在深入一下,讲一下selenium其他相关的东西。(selenium很强大,而在下也只是个菜鸡,所以有不足的还请各位老铁指正,咱们共同进步。)
Selenium是一个Web的自动化测试工具,所以它存在的意义当然不知识为了模拟登陆,我们日常生活中在网页上的行为,基本上都能用selenium实现。

鼠标动作链

有些时候,我们需要再页面上模拟一些鼠标操作,比如双击、右击、拖拽甚至按住不动等,我们可以通过导入 ActionChains 类来做到:

#导入 ActionChains 类
from selenium.webdriver import ActionChains

# 鼠标移动到 ac 位置
ac = driver.find_element_by_xpath('element')
ActionChains(driver).move_to_element(ac).perform()


# 在 ac 位置单击
ac = driver.find_element_by_xpath("elementA")
ActionChains(driver).move_to_element(ac).click(ac).perform()

# 在 ac 位置双击
ac = driver.find_element_by_xpath("elementB")
ActionChains(driver).move_to_element(ac).double_click(ac).perform()

# 在 ac 位置右击
ac = driver.find_element_by_xpath("elementC")
ActionChains(driver).move_to_element(ac).context_click(ac).perform()

# 在 ac 位置左键单击hold住
ac = driver.find_element_by_xpath('elementF')
ActionChains(driver).move_to_element(ac).click_and_hold(ac).perform()

# 将 ac1 拖拽到 ac2 位置
ac1 = driver.find_element_by_xpath('elementD')
ac2 = driver.find_element_by_xpath('elementE')
ActionChains(driver).drag_and_drop(ac1, ac2).perform()

填充表单

我们已经知道了怎样向文本框中输入文字,但是有时候我们会碰到 标签的下拉框。直接点击下拉框中的选项不一定可行。

<select id="status" class="form-control valid" onchange="" name="status">
    <option value=""></option>
    <option value="0">未审核</option>
    <option value="1">初审通过</option>
    <option value="2">复审通过</option>
    <option value="3">审核不通过</option>
</select>

Selenium专门提供了Select类来处理下拉框。 其实 WebDriver 中提供了一个叫 Select 的方法,可以帮助我们完成这些事情:

# 导入 Select 类
from selenium.webdriver.support.ui import Select

# 找到 name 的选项卡
select = Select(driver.find_element_by_name('status'))

select.select_by_index(1)
select.select_by_value("0")
select.select_by_visible_text(u"未审核")

index 索引从 0 开始
value是option标签的一个属性值,并不是显示在下拉框中的值
visible_text是在option标签文本的值,是显示在下拉框的值

取消选择

select.deselect_all()

弹窗处理

alert = driver.switch_to_alert()

获取所有窗口

driver.window_handles

遍历每一个窗口对象

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

前进

driver.forward()

后退

driver.back()

获取页面cookie值

for cookie in driver.get_cookies():
print “%s -> %s” % (cookie[‘name’], cookie[‘value’])

执行JavaScript语句

# 向下滚动10000像素
js = "document.body.scrollTop=10000"
driver.execute_script(js)

web自动化测试可谓是博大精深,作为一名菜鸡,在下也知道这些了,如果老铁们英文好的话可以去研究研究官方文档。
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值