Python爬虫利器之selenium常用操作

自动化测试selenium最核心的是元素的定位,通常一个元素会有多种属性,我们需要通过属性定位到元素,继而获取元素的值。

单个元素定位八种方式

//通过id方式定位
find_elements_by_id("元素id名")

//通过name方式定位
find_elements_by_name("元素name名")

//通过tag name方式定位
find_elements_by_tag_name("元素tag name名")

//通过class name方式定位
find_elements_by_class_name("元素class name名")

//通过xpath方式定位
find_elements_by_xpath("copy xpath")

//通过CSS方式定位(定位的选择器,不太懂,还没用过)
find_elements_by_css_selector("#kw")

//通过link定位(常用点击事件"下一页")
find_elements_by_link_text("文字")

//通过Partial link text定位(部分连接,通过“文”字也能找到"文字"的链接)
find_elements_by_partial_link_text("文")

多个元素定位八种方式

  • id
  • name
  • tag name
  • class name
  • xpath
  • css selector
  • link text
  • partial link text
//通过id方式定位
find_element_by_id("元素id名")

//通过name方式定位
find_element_by_name("元素name名")

//通过tag name方式定位
find_element_by_tag_name("元素tag name名")

//通过class name方式定位
find_element_by_class_name("元素class name名")

//通过xpath方式定位
find_element_by_xpath("copy xpath")

//通过CSS方式定位(定位的选择器,不太懂,还没用过)
find_element_by_css_selector("#kw")

//通过link定位(常用点击事件"下一页")
find_element_by_link_text("文字")

//通过Partial link text定位(部分连接,通过“文”字也能找到"文字"的链接)
find_element_by_partial_link_text("文")

多层框架/窗口定位

  • switch_to_frame()
  • switch_to_window()
    例如f1.html框架中嵌套f2.html
#f1的id=f1 ,f2的id=f2
#先找到f1,
driver.switch_to_frame("f1")
#在找到f2
driver.switch_to_frame("f2")
#之后就可以正常操作元素了

操作定位元素

  • click() 用于点击一个按钮
  • send_keys(“xx”) 用于输入框里输入内容或者按键操作

    • send_keys(Keys.TAB) #TAB
    • send_keys(Keys.ENTER) #回车
    • send_keys(“selenium”) #输入框输入内容
    • send_keys(Keys.CONTROL,’a’) #ctrl+a全选输入框内容
    • send_keys(Keys.CONTROL,’x’) #ctrl+x剪切输入框内容
  • clear() 用于清除输入框的内容
  • submit() 用于提交表单
    使用send_keys()调用按键需要导入包
    from selenium.webdriver.common.keys import Keys
鼠标事件
  • 鼠标点击
    先要导入ActionChains包
from selenium.webdriver.common.action_chains import ActionChains    #导入包
s = driver.find_element_by_xpath("ss") #定位元素的原位置
ActionChains(driver).context_click(s).perform()   #右击操作
ActionChains(driver).double_click(s).perform()   #双击操作
  • 鼠标拖放
source = driver.find_element_by_name("source") #定位元素的原位置
target = driver.find_element_by_name("target")#定位元素要移动的位置
ActionChains(driver).drag_and_drop(source,target).perform() #执行元素移动操作

添加等待时间

作用:保证脚本运行的稳定性。

import time #导入time函数
time.sleep(3) #休眠3秒 只能选择固定的时间等待

browser.implicitly_wait(3)#智能等待30秒
获取访问页面的信息

driver.title

浏览器操作

  • 将浏览器最大化

    browser.maximize_window()
  • 设置浏览器宽300,高200

    browser.set_window_size(300,200)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值