ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

ui自动化( 三 )

2022-06-29 19:33:51  阅读:196  来源: 互联网

标签:webdriver get driver element ui 自动化 sleep find


鼠标事件

'''右键操作'''
driver=webdriver.Chrome()
driver.maximize_window()
driver.get('https://www.baidu.com/')
action=ActionChains(driver=driver)
so=driver.find_element_by_id('kw')
t.sleep(3)
action.context_click(on_element=so).perform()
t.sleep(3)
driver.quit()

 


 

'''双击'''
driver=webdriver.Chrome()
driver.maximize_window()
driver.get('https://www.baidu.com/')
action=ActionChains(driver=driver)
driver.find_element_by_id('kw').send_keys('刘乐乐')
su=driver.find_element_by_id('su')
t.sleep(3)
action.double_click(on_element=su).perform()
t.sleep(3)
driver.quit()

 


 --------------------------------------------------------------------------------------------------------------------------------------------------------------

'''截图'''
driver=webdriver.Chrome()
driver.maximize_window()
driver.get('https://www.baidu.com/')
driver.find_element_by_id('kw').send_keys('刘乐乐')
driver.find_element_by_id('su').click()
t.sleep(3)
driver.get_screenshot_as_file('baidu.png')
driver.quit()

 


'''实验'''
driver=webdriver.Chrome()
driver.maximize_window()
driver.get('https://www.tmall.com/?from=tianmao.com')
driver.find_element_by_link_text('请登录').click()
t.sleep(3)
driver.find_element_by_id('fm-login-id').send_keys('14474686578')
driver.find_element_by_id('fm-login-password').send_keys('sfvbbab')
driver.find_element_by_xpath('//*[@id="login-form"]/div[4]/button').click()
t.sleep(4)
driver.get_screenshot_as_file('tianmao.png')
driver.quit()

 


 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

键盘事件
from  selenium import webdriver
import time as t
from selenium.webdriver.common.keys import Keys
driver=webdriver.Chrome()
driver.maximize_window()
driver.get('https://www.baidu.com/')
so=driver.find_element_by_id('kw')
so.send_keys('刘乐乐')
t.sleep(3)
so.send_keys(Keys.CONTROL,'a')
t.sleep(3)
so.send_keys(Keys.CONTROL,'c')
t.sleep(3)
so.send_keys(Keys.BACKSPACE)
t.sleep(3)
so.send_keys(Keys.CONTROL,'v')
t.sleep(3)
so.send_keys(Keys.F12)
t.sleep(3)
driver.quit()
------------------------------------------------------------------------------------
等待

1、固定等待,也就是使用sleep()方法

2、隐式等待,使用到的方法是implicitly_wait的方法,可以把它理解为设置最长等待时间

3、显式等待,主要指的是程序每隔一段时间执行自定义的程序判断条件,如果判断成立,程序就会继

续执行,那么如果判断失败,就会报TimeOutExpection的异常信息。

from  selenium import webdriver
from selenium.webdriver.common.by import By
import time as t
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as es
'''隐式'''
driver=webdriver.Chrome()
driver.maximize_window()
driver.get('https://file.qq.com/')
driver.implicitly_wait(20)
driver.switch_to.frame('login_frame1')
t.sleep(3)
driver.switch_to.frame('ptlogin_iframe')
t.sleep(3)
driver.find_element(By.ID,'switcher_plogin').click()
t.sleep(3)
a=driver.find_element(By.ID,'uin_tips')
print(a.text)
assert a.text=="支持QQ号/邮箱/手机号登录"
t.sleep(3)
b=driver.find_element(By.ID,'pwd_tips')
print(b.text)
assert b.text=="请输入密码"
t.sleep(3)
driver.quit()
'''显式'''
driver=webdriver.Chrome()
driver.maximize_window()
driver.get('https://file.qq.com/')
driver.implicitly_wait(20)
driver.switch_to.frame('login_frame1')
t.sleep(3)
driver.switch_to.frame('ptlogin_iframe')
t.sleep(3)
wait=WebDriverWait(driver=driver,timeout=20).until(method=es.element_to_be_clickable((By.ID,'switcher_plogin')))
wait.click()
t.sleep(3)
driver.quit()
-------------------------------------------------------------------------------------------
'''文件可见时操作'''
driver=webdriver.Chrome()
driver.maximize_window()
driver.get('https://www.baidu.com/')
driver.implicitly_wait(20)
about=WebDriverWait(driver=driver,timeout=20)\
.until(method=es.visibility_of_element_located
((By.LINK_TEXT,'关于百度')))
about.click()
t.sleep(3)
driver.quit()
----------------------------------------------------------------------------------------------
JS 操作
'''浏览器的滑动'''
driver=webdriver.Chrome()
driver.maximize_window()
driver.get('https://www.taobao.com/')
driver.implicitly_wait(20)
t.sleep(3)
向下滑动

down="var q=document.documentElement.scrollTop=10000"
driver.execute_script(down)
t.sleep(4)
向上滑动

up="var q=document.documentElement.scrollTop=0"
driver.execute_script(up)
t.sleep(4)
driver.quit()
'''富文本'''
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
def richText(driver,content):
'''
实现在富文本里面输入内容
:param driver: webdriver实例化后的对象信息
:param content: 富文本里面需要输入的文字内容
:return:
'''
js="document.getElementById('ueditor_0').contentWindow.document.body.innerHTML='{0}'".format(content)
driver.execute_script(js)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -- - - - - -- - - - -- - -- --
driver=webdriver.Chrome()
driver.maximize_window()
driver.get('https://uutool.cn/ueditor/')
driver.implicitly_wait(20)
t.sleep(9)
richText(driver=driver,content='我爱小乐乐')
t.sleep(5)
driver.quit()
'''时间控件'''

 

 



def startTime(driver,content):
'''开始时间控件'''
js="$(\"input[placeholder='开始时间≥当前时间']\").removeAttr('readonly');" \
"$(\"input[placeholder='开始时间≥当前时间']\").attr('value','{0}')".format(content)
driver.execute_script(js)

def endTime(driver,content):

'''结束时间控件'''

js="$(\"input[placeholder='结束时间>开始时间']\").removeAttr('readonly');" \
"$(\"input[placeholder='结束时间>开始时间']\").attr('value','{0}')".format(content)
driver.execute_script(js)

driver=webdriver.Chrome()
driver.maximize_window()
driver.get('file:///D:/code/testDev/ul%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95/Time(1)/Time/index.html')
driver.implicitly_wait(20)
t.sleep(3)
startTime(driver=driver,content='2022-01-01 00:00:00')
t.sleep(3)
endTime(driver=driver,content='2022-06-06 00:00:00')
t.sleep(3)
driver.quit()


 

 


 

 

 
 

标签:webdriver,get,driver,element,ui,自动化,sleep,find
来源: https://www.cnblogs.com/liulele123/p/16424361.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有