python元素定位input button_python+webdriver学习鼠标键盘事件以及定位元素

本文详细介绍了使用Python的Selenium库进行网页元素定位、鼠标键盘事件模拟,包括设置浏览器大小、前进后退、刷新、元素交互、鼠标右击、双击、悬停、拖放等操作,以及键盘的按键事件。此外,还讲解了如何通过ActionChains类实现复杂的交互行为,如拖放、右键点击、双击等。
摘要由CSDN通过智能技术生成

设置浏览器大小:像素点

set_window_size(width,height)

maximize_window() 浏览器全屏显示,不带参数

控制浏览器前进、后退:

driver.forward()

driver.back()

模拟浏览器刷新:

driver.refresh()

from selenium import webdriver

driver = webdriver.Firefox()

driver.get(r"http://www.baidu.com/")

#参数是像素点宽,高

driver.set_window_size(800,800)

print("浏览器大小是800px,800px")

driver.find_element_by_link_text("新闻").click()

driver.back()     #返回前一个页面

driver.forward()  #前进前一个页面

driver.refresh()  #刷新当前页面

driver.find_element_by_css_selector("#ww").send_keys("python3")

driver.find_element_by_xpath("//*[@class='btn']").click()

driver.refresh()  #刷新当前页面

driver.quit()

clear()清除文本

send_keys("....") 模拟按键输入

click() 单击元素,前提是它是可以被单击的对象。

另外click()方法不仅可以用于单击一个按钮,它还能可以单击任何可以单击的文字、图片、checkbox、radio、select下拉框等。

submit() 用于提交表单,同样可以用于提交一个按钮。

WebElement接口常用方法

先看例子:

from selenium import webdriver

driver = webdriver.Firefox()

driver.get(r"http://www.baidu.com/")

size = driver.find_element_by_name("wd").size

print(size)      #size属性,返回元素的尺寸,表单输入框之类的width、height等

text = driver.find_element_by_id("jgwab").text

print(text)      #text属性,获取元素的文本,可以用力判断打开的页面是否是预期的。

attribute = driver.find_element_by_xpath(".//input[@id='kw']").get_attribute('maxlength')

print(attribute) #get_attribute()方法可以获取属性值

result = driver.find_element_by_partial_link_text("京公网安备").is_displayed()

print(result)   #is_displayed() 元素是否设置可见,可见返回true则false

driver.quit()

size属性返回元素尺寸

text属性返回元素文本

get_attribute()方法获取属性值

is_displayed()方法返回该元素是否设置可见

鼠标事件

对鼠标的操作:右击、双击、悬停、鼠标拖动等功能,

webdriver中对鼠标的操作的方法封装在ActionChains类中 ,使用前要先导入ActionChains类:

from selenium.webdriver.common.action_chains import ActionChains

ActionChains类提供的鼠标操作常用方法:

context_click()               右击

double_click()                双击

drag_and_drop()          拖动

move_to_element()     鼠标悬停

perform()                        执行所有ActionChains类中存储的行为,可以理解为对整个操作的提交动作

鼠标右键操作

from selenium import webdriver

from selenium.webdriver.common.action_chains import ActionChains  #导入ActionChains类

driver = webdriver.Firefox()

driver.get(r"https://yunpan.360.cn/")

driver.maximize_window ()

driver.find_element_by_xpath("//*[@name='account']").clear()

driver.find_element_by_xpath("//*[@name='account']").send_keys("username.com")

driver.find_element_by_name("password").clear()

driver.find_element_by_name("password").send_keys("pwd")

driver.find_element_by_xpath("//*[@id='login']/div/div[2]/form/p[4]/label/input").click()

driver.find_element_by_xpath("//*[@id='login']/div/div[2]/form/p[5]/input").click()

#定位到需要右击的元素

right_click = driver.find_element_by_link_text("jemeter")

#对定位到的元素执行鼠标邮件操作,调用ActionChains类,将浏览器驱动driver作为参数传入,context_click()需要指定元素位置

ActionChains(driver).context_click(right_click).perform()

鼠标双击操作

double_click()方法模拟鼠标双击操作

(单击查看详情,双击弹出修改页面就用这个方法模拟)

from selenium import webdriver

from selenium.webdriver.common.action_chains import ActionChains

driver = webdriver.Firefox()

driver.get(r"http://www.baidu.com/")

....

#定位需要双击的元素

double_click = driver.find_element_by_xpath("")

#对定位到的元素进行双击操作

ActionChains(driver).double_click(double_click).perform()

a = driver.find_element_by_class_name("")

ActionChains(driver).double_click(a).perform()

鼠标悬停

move_to_element()方法模拟鼠标悬停

from selenium import webdriver

import time

from selenium.webdriver.common.action_chains import ActionChains

driver = webdriver.Firefox()

driver.get(r"http://www.baidu.com/")

driver.set_window_si

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值