Selenium入门

一、打开网页

#启动驱动程序,并访问网页
	# 驱动文件路径
    driverfile_path = r'/usr/bin/chromedriver'
    # 启动浏览器
    driver = webdriver.Chrome(driverfile_path)
    # 访问网页
    driver.get('https://sfrz.cug.edu.cn/tpass/login')

二、窗口操作

  • 将浏览器最大化显示
browser.maximize_window()
  • 将浏览器最小化显示
browser.minimize_window()
  • 浏览器设置窗口大小
#设置浏览器宽480、高800显示
browser.set_window_size(480, 800)
  • 浏览器前进后退
#前进
browser.forword()
#后退
browser.back()

三、操作事件

#对象操作事件
click——点击对象
send_keys——在对象上模拟按键输入
clear——清除对象的内容,如果可以的话
submit——提交对象的内容,如果可以的话
text——用于获取元素的文本信息
#键盘事件
要想调用键盘按键操作需要引入 keys 包:
from selenium.webdriver.common.keys import Keys
通过 send_keys()调用按键:
send_keys(Keys.TAB) # TAB
send_keys(Keys.ENTER) # 回车
键盘组合键的用法:
#ctrl+a 全选输入框内容 
driver.find_element_by_id("kw").send_keys(Keys.CONTROL,'a')
#ctrl+x 剪切输入框内容 
driver.find_element_by_id("kw").send_keys(Keys.CONTROL,'x')
#鼠标事件
鼠标事件一般包括鼠标右键、双击、拖动、移动鼠标到某个元素上等等。
需要引入ActionChains类。
引入方法:from selenium.webdriver.common.action_chains import ActionChains
ActionChains 常用方法:
perform() 执行所有ActionChains 中存储的行为;
context_click() 右击;
double_click() 双击;
drag_and_drop() 拖动;
move_to_element() 鼠标悬停。
鼠标双击示例:

#定位到要双击的元素qqq =driver.find_element_by_xpath("xxx") 
#对定位到的元素执行鼠标双击操作 ActionChains(driver).double_click(qqq).perform()

鼠标拖放示例:

#定位元素的原位置 element = driver.find_element_by_name("source") 
#定位元素要移动到的目标位置 target = driver.find_element_by_name("target")
#执行元素的移动操作 ActionChains(driver).drag_and_drop(element, target).perform()

四、一般问题

多层框架/层级定位
定位元素过程中经常会遇到找不到元素的问题,出现该问题一般都是以下因素导致:
1.元素定位方法不对
2.页面存在iframe或内嵌窗口
3.页面超时

webdriver 提供了一个 switch_to_frame 方法,可以很轻松的来解决这个问题。
用法:
#先找到到 iframe1(id = f1)browser.switch_to_frame("f1")
同样的,如果是内嵌窗口:browser.switch_to_window("f1")

五、定位控件(重点)

  • id定位:find_element_by_id()
  • name定位:find_element_by_name()
  • class定位:find_element_by_class_name()
  • link定位:find_element_by_link_text()
  • partial link定位:find_element_by_partial_link_text()
  • tag定位:find_element_by_tag_name()
  • xpath定位:find_element_by_xpath()
  • css定位:find_element_by_css_selector()

下一篇更新CSS选择定位方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值