Selenium4自动化测试

2023.4.4编辑

selenium 3 与 4 的区别

  1. selenium 3 与 4 ,元素定位表达不同,本质一样

  2. selenium 3 find_elemnt_by_xxx

    selenium 4 find_elemnt(By.xxx,"")

  3. selenium 4不支持下划线

  1. 安装Pycharm

  2. 安装谷歌驱动,找到相应的版本进行下载

  3. 解压安装包,将解压的驱动放在合适的位子,复制驱动路径,粘贴在环境变量path里

  4. 打开Pycharm终端,输入

    pip install selenium

from selenium import webdriver
from time import sleep
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.get("http://www.xxxx.com")
sleep(1)
​
#id 定位
driver.find_element(By.ID,"xx")
​
#name 定位
driver.find_element(By.NAME,"xx")
​
#tag name定位
driver.find_element("input")
driver.find_element(By.TAG_NAME, 'xx')
​
#根据 超链接标签 中的 部分 文本内容来定位
print (driver.find_element(By.PARTIAL_LINK_TEXT, "xxx").text)
​
#根据 超链接标签 中的 文本内容来定位元素 >link_text
driver.find_element(By.LINK_TEXT,"新闻")
​
#class定位
driver.find_element(By.CLASS_NAME,"s_ipt").send_keys("selenium-name定位")
​
#XPATH定位 相对路径使用>绝对路径
#XPATH  绝对路径
driver.find_element(By.XPATH,"/html/body/div[1]/div/div[3]/ul/li[2]/a")
#full XPATH  相对路径
driver.find_element(By.XPATH, //*[@id='父级id属性值']/input)
​
#css选择器
driver.find_element(By.CSS_SELECTOR,"xxx").send_keys("CSS定位")
​
sleep(1)
#截图
driver.save_screenshot(r'C:\Users\Desktop\xxx\xx.PNG')
#退出浏览器
driver.quit
#send_keys函数:文本框输入的字符
driver.find_element(By.ID,"xx").send_keys("selenium-id定位")
​
#print((xx).text)打印文本
print(driver.find_element(By.TAG_NAME, 'xx').text)
​
#设置浏览器的大小
driver.set_window_size(222,222)
​
#最大化瀏覽器窗口
driver.maximize_window()
​
#模拟浏览器后退按钮
driver.back() 
​
#模拟浏览器F5刷新
driver.refresh() 
​
#模拟点击浏览器关闭按钮
driver.close() 关闭当前窗口 
​
#关闭所有程序启动的窗口
driver.quit() 
​
#获取页面title
driver.title 
​
# 获取当前页面URL
driver.current_url
from selenium import webdriver
from time import sleep
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.get("http://www.xxxx.com")
action = ActionChains(driver)
​
#鼠标左单击
driver.find_element(By.LINK_TEXT,"xx").click()
​
#鼠标悬停
ele = driver.find_element(By.XPATH,'')
ActionChains(driver).move_to_element(ele).perform()
​
#双击
ele = driver.find_element(By.XPATH,'')
ActionChains(driver).double_click(ele).perform()
​
#右键
ele = driver.find_element(By.XPATH,'')
ActionChains(driver).context_click (ele).perform()
ActionChains(driver).right_click (ele).perform()
 
#鼠标拖拽
ele = driver.find_element(By.XPATH,'')
ActionChains(driver).drag_and_drop (ele).perform()
#删除键(BackSpace)
send_keys(Keys.BACK_SPACE) 
​
#空格键(Space)
send_keys(Keys.SPACE) 
​
#制表键(Tab)
send_keys(Keys.TAB) 
​
#回退键(Esc)
send_keys(Keys.ESCAPE) 
​
#回车键(Enter)
send_keys(Keys.ENTER) 
​
#全选(Ctrl+A)
send_keys(Keys.CONTROL,'a') 
​
#复制(Ctrl+C)
send_keys(Keys.CONTROL,'c') 
​
#粘贴(Ctrl+V)
send_keys(Keys.CONTROL,'v') 
#控制滚动条 (0:左边距;1000:上边距;单位像素)
js = "window.scrollTo(0,1000)"
driver.execute_script(js)
​
#滚动到顶部与底部
browser.execute_script("var action=document.documentElement.scrollTop=0")
browser.execute_script("var action=document.documentElement.scrollTop=10000")
​
#获取当前窗口句柄
driver.current_window_handle 
#获取所有窗口句柄
driver.window_handles
#切换指定句柄窗口
driver.switch_to.window(handle) 
​
ah =  driver.window_handles
driver.switch_to.window(ah[1])
from selenium.webdriver.support.wait import WebDriverWait
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.Chrome()
driver.get("https://www.baidu.com/")
​
driver.implicitly_wait(timeout)
#(timeout:为等待最大时长,单位:秒)


WebDriverWait(driver, timeout, poll_frequency=0.5)

#driver:浏览器驱动对象
#timeout:超时的时长,单位:秒
#poll_frequency:检测间隔时间,默认为0.5秒


#调用方法 until(method):直到...时
#method:函数名称,该函数用来实现对元素的定位

lambda x: x.find_element_by_id("xxxx") #一般使用匿名函数来实现

element = WebDriverWait(driver, 10, 1).until(lambda x: x.find_element_by_id("xxxxxx"))
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值