selenium webdriver 浏览器操作,编码问题,鼠标操作,键盘按键操作,显示和隐式等待
Posted 不知道名字
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了selenium webdriver 浏览器操作,编码问题,鼠标操作,键盘按键操作,显示和隐式等待相关的知识,希望对你有一定的参考价值。
\'\'\'
size 返回元素的尺寸
text 获取元素的文本,测试用例中的断言
<a id=\'cp\'>文本信息</a>
t_attribute(name) 获取元素属性值
is_displayed() 设置该元素是否用户可见
\'\'\'
from selenium import webdriver
driver=webdriver.Firefox()
driver.get("https://www.baidu.com")
#获取输入框的尺寸
size=driver.find_element_by_id("kw").size
print(size)
attribute=driver.find_element_by_id("kw").get_attribute(\'type\')
print (attribute)
result = driver.find_element_by_id("kw").is_displayed()
print (result)
#python编码问题解决
1、我们编写的源文件,自己写的脚本。
在头部定义编码
#coding=utf-8
2、执行脚本的环境语文编码
3、gb2312 标准的中文编码
4、gbk 扩展,支持繁体中文
5、cp936 windows系统里面支持中文的一种编码类型
解决:使用python IDLE运行带中文的OK,有支持各种编码
text=driver.find_element_by_id(\'cp\').text
test2=text.encode("gbk","ignore"),decode("gbk")
print(text2)
#鼠标操作
e1=driver.find_element_by_link_text("设置")
e2=driver.find_element_by_link_text("网页")
ActionChains(driver).move_to_element(el).perform()
ActionChains(driver).drag_and_drop(e1,e2).perform()
context_click() 右击
double_click() 双击
drag_and_drop()拖动,需要两个元素,一个原点,一个目标点
move_to_element()鼠标悬停
#鼠标的操作
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from time import sleep
driver=webdriver.Firefox()
#输入框输入内容
driver.find_element_by_id("kw").send_keys("selenium")
sleep(2)
#输入空格键+教程
driver.find_element_by_id("kw").send_keys(Keys.SPACE)
driver.find_element_by_id("kw").send_keys("教程") 如果是python2,教程前面要加U,如(U"教程")
sleep(2)
#ctrl+a全选输入框
driver.find_element_by_id("kw").send_keys("Keys.CONTROL",\'a\')
sleep(2)
#ctrl+x剪切
driver.find_element_by_id("kw").send_keys("Keys.CONTROL",\'x\')
sleep(2)
#ctrl+x粘贴
driver.find_element_by_id("kw").send_keys("Keys.CONTROL",\'v\')
#通过回车键盘来代替点击操作
driver.find_element_by_id("kw").send_keys("Keys.ENTER")
#获取验证信息,与自动化测试用例的时候,用来做断言验证
title=driver.title
print(title)
url=driver.current_url
print (url)
driver.find_element_by_id("kw").send_keys("selenium")
driver.find_element_by_id("su").click()
#重新获取
title=driver.title
print(title)
url=driver.current_url
print (url)
#断言
if title == "selenium_百度搜索":
print(\'pass\')
else:
print(\'error\')
#显示等待:针地某个元素等待
#隐式等待,针对当页面当中的所有元素等待
from selenium import webdriver
from selenium.webdriver.common.by import by
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver=webdriver.Firefox()
driver.get("https://www.baidu.com")
# WebDriverWait(driver,5,0.5)检测5秒种,每隔0.5秒检测一次,EC.presence_of_element_located)((By.ID,"kw"))判断该元素是否已存在,也可以使用is_displayed()检测是否为真,如果为真,则代表存在
element = WebDriverWait(driver,5,0.5).until(
EC.presence_of_element_located)((By.ID,"kw"))
)
element.send_keys("selenium")
driver.quit()
#以下方法使用is_displayed()检测元素是否存在
from selenium import webdriver
from time import sleep,ctime
driver=webdriver.Firefox()
driver.get("https://www.baidu.com")
print(ctime())
for i in range(10):
try:
e1 = driver.find_element_by_id("kwaa")
if e1.is_displayed():
break
except:pass
sleep(1)
else:
print("time out")
driver.close()
print(ctime())
#隐式等待,在开头直接定义如下driver.implicitly_wait(10)
from selenium import webdriver
from time import sleep,ctime
driver=webdriver.Firefox()
driver.implicitly_wait(10)
driver.get("https://www.baidu.com")
e1 = driver.find_element_by_id("kwaa")
e1.send_keys(\'selenium\')
driver.quit()
以上是关于selenium webdriver 浏览器操作,编码问题,鼠标操作,键盘按键操作,显示和隐式等待的主要内容,如果未能解决你的问题,请参考以下文章
python selenium-webdriver 常用浏览器的操作
selenium-webdriver(python) 页面操作:滚动缩放
Python养成计划之Selenium WebDriver基础操作教程