dcsxlh

导航

 

一、输入框、密码框、按钮、输入

from  selenium  import   webdriver
from time import *
dx=webdriver.Chrome()
dx.get("http://49.233.201.254:8080/cms/manage/login.do")
dx.maximize_window()
sleep(2)
dx.find_element_by_id("userAccount").send_keys("admin")
sleep(2)
dx.find_element_by_id("loginPwd").send_keys("123456")
sleep(2)
dx.find_element_by_id("loginBtn").click()

 二、链接

from  selenium  import   webdriver
from time import *
dx=webdriver.Chrome()
dx.get("https://www.baidu.com/")
dx.find_element_by_link_text("地图").click()

三、隐藏框
(1)隐藏框

 

from  selenium  import   webdriver
from selenium.webdriver.common.action_chains import ActionChains
from time import *
dx=webdriver.Chrome()
dx.get("https://www.baidu.com/")
wz=dx.find_element_by_link_text("更多")
ActionChains(dx).move_to_element(wz).perform()
sleep(2)
dx.find_element_by_link_text("学术").click()

(二)设置
(1)直接定位shift+ctrl+c
from  selenium  import   webdriver
from selenium.webdriver.common.action_chains import ActionChains
from time import *
dx=webdriver.Chrome()
dx.get("https://www.baidu.com/")
dx.find_element_by_xpath('//*[@id="s-usersetting-top"]').click()
dx.find_element_by_link_text("高级搜索").click()
(2)
from time  import  *
dx=webdriver.Chrome()
dx.get("https://www.baidu.com/")
dx.maximize_window()
sleep(2)
wz=dx.find_element_by_xpath('//*[@id="s-usersetting-top"]')
ActionChains(dx).move_to_element(wz).perform()
sleep(2)
dx.find_element_by_link_text("高级搜索")
(3) text获取文本
from  selenium  import   webdriver
from selenium.webdriver.common.action_chains import ActionChains
from time import *
dx=webdriver.Chrome()
dx.get("https://www.baidu.com/")
dx.maximize_window()
sleep(2)
wz=dx.find_element_by_xpath('//*[@id="s-usersetting-top"]').text
print(wz)
(4)断言if ,assert 断言
a、if断言
from  selenium  import   webdriver
from selenium.webdriver.common.action_chains import ActionChains
from time import *
dx=webdriver.Chrome()
dx.get("https://www.baidu.com/")
dx.maximize_window()
sleep(2)
wz=dx.find_element_by_xpath('//*[@id="s-usersetting-top"]').text
print(wz)
if wz=="更多":
print("ok")
else:
print("no")
if断言无论正确,错误,都会打印结果
b、assert 断言
注意:错误就抛出异常,正确,正常执行下一步
from  selenium  import   webdriver
from selenium.webdriver.common.action_chains import ActionChains
from time import *
dx=webdriver.Chrome()
dx.get("https://www.baidu.com/")
dx.maximize_window()
sleep(2)
wz=dx.find_element_by_xpath('//*[@id="s-usersetting-top"]').text
print(wz)
# assert wz=="设置"
assert wz=="更多"
print(1)

(5)titlle 标题

a、获取当前页面标题
from  selenium  import   webdriver
from selenium.webdriver.common.action_chains import ActionChains
from time import *
dx=webdriver.Chrome()
dx.get("https://www.baidu.com/")
print(dx.title) #百度一下,你就知道
b、当重开窗口,当前title还在第一个页面
from  selenium import  webdriver  #导入selenim 这个模块中的webdriver
import time
dx=webdriver.Chrome() #创建谷歌对象
dx.get("https://www.baidu.com/") #
print(dx.title) #print(dx.title)
time.sleep(5)
jb="window.open('https://www.jd.com/')"
ck=dx.execute_script(jb)
print(dx.title) #百度一下,你就知道

(6)下拉框

from  selenium import  webdriver  #导入selenim 这个模块中的webdriver
import time
from selenium.webdriver.support.select import Select
dx=webdriver.Chrome() #创建谷歌对象
url=r"file:///E:/dcs/two/selenium/%E5%BC%B9%E6%A1%86/select.html"
dx.get(url)
time.sleep(2)
wz=dx.find_element_by_id("dropdown")
# Select(wz).select_by_index(2) #第一种方法索引
# Select(wz).select_by_visible_text("湖州") #第二种方法通过文本值
Select(wz).select_by_value("option2") # 根据value

 alter 弹框

 

 

from  selenium import  webdriver  #导入selenim 这个模块中的webdriver
import time
from selenium.webdriver.support.select import Select
dx=webdriver.Chrome() #创建谷歌对象
url=r"file:///E:/dcs/two/selenium/%E5%BC%B9%E6%A1%86/alert%E5%BC%B9%E6%A1%86.html"
dx.get(url)
time.sleep(2)

tk=dx.switch_to.alert
time.sleep(2)
# tk.accept()#确认
tk.dismiss() #取消
time.sleep(2)
tk.accept()#确认

 确认型弹框

from  selenium import  webdriver  #导入selenim 这个模块中的webdriver
import time
from selenium.webdriver.support.select import Select
dx=webdriver.Chrome() #创建谷歌对象
url=r"file:///E:/dcs/two/selenium/%E5%BC%B9%E6%A1%86/enter.html"
dx.get(url)
time.sleep(2)
dx.find_element_by_xpath("/html/body/div/input").click()
time.sleep(2)
tk=dx.switch_to.alert
time.sleep(2)
tk.accept()#确认
输入性弹框
from  selenium import  webdriver  #导入selenim 这个模块中的webdriver
import time
from selenium.webdriver.support.select import Select
dx=webdriver.Chrome() #创建谷歌对象
url=r"file:///E:/dcs/two/selenium/%E5%BC%B9%E6%A1%86/prompt.html"
dx.get(url)
time.sleep(2)
dx.find_element_by_xpath('/html/body/div[2]/input').click()
time.sleep(2)
tk=dx.switch_to.alert
tk.send_keys("dcs")
time.sleep(2)
tk.accept()#确认

上传文件类型弹框
from  selenium import  webdriver  #导入selenim 这个模块中的webdriver
import time
from selenium.webdriver.support.select import Select
dx=webdriver.Chrome() #创建谷歌对象
url=r"file:///E:/dcs/two/selenium/%E5%BC%B9%E6%A1%86/upload_file.html"
dx.get(url)
time.sleep(2)
dx.find_element_by_id('file').send_keys(r"E:\dcs\aa.txt")
fram框

连接:
https://graph.qq.com/oauth2.0/show?which=Login&display=pc&response_type=code&state=E0F1B91BA7D345A9A2E450CBFE7588893F7CEAB7CBB8CF156FECDB31BE749794C505156DAEE14DD72F086A5B02410C99&client_id=100273020&redirect_uri=https%3A%2F%2Fqq.jd.com%2Fnew%2Fqq%2Fcallback.action%3Fuuid%3D5a35acac4edb4ab59ec5120d52aecc7f

 



切换窗口

一、切换两个窗口时

from  selenium import  webdriver  #导入selenim 这个模块中的webdriver
import time
dx=webdriver.Chrome() #创建谷歌对象
dx.get("https://www.baidu.com/") #
time.sleep(5)
print(dx.title)
jb="window.open('https://www.jd.com/')"
ck=dx.execute_script(jb)
print(dx.title)
dq=dx.current_window_handle #获取当前句柄
jb=dx.window_handles #获取所有的句柄
#['CDwindow-92B6400E0A2D27A58D25BCE8D47D59BF', 'CDwindow-220DBDB8C02A218AD54894D18CB320E2']
print(jb)
dx.switch_to.window(jb[1])
time.sleep(2)
dx.find_element_by_link_text("你好,请登录").click()

 二、切换三个窗口 索引位置【0.2.1】

from  selenium import  webdriver  #导入selenim 这个模块中的webdriver
import time
dx=webdriver.Chrome() #创建谷歌对象
dx.get("https://www.baidu.com/") #
time.sleep(5)
print(dx.title)
jb="window.open('https://www.jd.com/')"
ck=dx.execute_script(jb)
print(dx.title)
jb2="window.open('https://www.hao123.com/')"
ck2=dx.execute_script(jb2)
dq=dx.current_window_handle #获取当前句柄
jb=dx.window_handles #获取所有的句柄
#['CDwindow-92B6400E0A2D27A58D25BCE8D47D59BF', 'CDwindow-220DBDB8C02A218AD54894D18CB320E2']
print(jb)
dx.switch_to.window(jb[2])
time.sleep(2)
dx.find_element_by_link_text("你好,请登录").click()

 三、通过for循环来切换窗口

from  selenium import  webdriver  #导入selenim 这个模块中的webdriver
import time
dx=webdriver.Chrome() #创建谷歌对象
dx.get("https://www.baidu.com/") #
time.sleep(5)
print(dx.title)
jb="window.open('https://www.jd.com/')"
ck=dx.execute_script(jb)
print(dx.title)
jb2="window.open('https://www.hao123.com/')"
ck2=dx.execute_script(jb2)
dq=dx.current_window_handle #获取当前句柄
jb=dx.window_handles #获取所有的句柄
#['CDwindow-92B6400E0A2D27A58D25BCE8D47D59BF', 'CDwindow-220DBDB8C02A218AD54894D18CB320E2']
print(jb)
for i in jb:
dx.switch_to.window(i)
if "京东(JD.COM)-正品低价、品质保障、配送及时、轻松购物!" in dx.title:
break
print(dx.title)
dx.find_element_by_link_text("你好,请登录").click()

快捷键:添加keys类
from  selenium import  webdriver  #导入selenim 这个模块中的webdriver
from selenium.webdriver.common.keys import Keys
import time
dx=webdriver.Chrome() #创建谷歌对象
dx.get("https://www.baidu.com/") #
time.sleep(5)
dx.maximize_window()
dx.find_element_by_id("kw").send_keys("dcs")
time.sleep(2)
dx.find_element_by_id("kw").send_keys(Keys.CONTROL,"a")
time.sleep(2)
dx.find_element_by_id("kw").send_keys(Keys.CONTROL,"x")
time.sleep(2)
dx.find_element_by_id("kw").send_keys(Keys.CONTROL,"v")
time.sleep(2)
dx.find_element_by_id("kw").send_keys(Keys.ENTER)
优化:
封装
from  selenium import  webdriver  #导入selenim 这个模块中的webdriver
from selenium.webdriver.common.keys import Keys
import time
dx=webdriver.Chrome() #创建谷歌对象
dx.get("https://www.baidu.com/") #
time.sleep(5)
dx.maximize_window()
def jp(a,*b):
dx.find_element_by_id(a).send_keys(b)
time.sleep(2)
if __name__ == '__main__':
jp("kw","dcs") #输入
jp("kw", Keys.CONTROL,"a") #全选
jp("kw", Keys.CONTROL, "x")
jp("kw", Keys.CONTROL, "v")
jp("kw", Keys.ENTER)
滚动条
方法1:
window.scrollTo(0,2000)
通过坐标,从o开始

 

from  selenium import  webdriver  #导入selenim 这个模块中的webdriver
import time
dx=webdriver.Chrome() #创建谷歌对象
dx.get("https://www.jd.com/") #
g1="window.scrollTo(0,2000)"
dx.execute_script(g1)
time.sleep(2)
g2="window.scrollTo(0,0)"
dx.execute_script(g2)
方法二:
from  selenium import  webdriver
from selenium.webdriver.support.select import Select
from time import *
dx=webdriver.Chrome()
dx.get("https://www.jd.com/")
dx.maximize_window()
js="var d=document.documentElement.scrollTop=1000"
dx.execute_script(js)
sleep(3)
js1="var d=document.documentElement.scrollTop=0"
dx.execute_script(js1)
方法三:
from  selenium import  webdriver
from selenium.webdriver.support.select import Select
from time import *
dx=webdriver.Chrome()
dx.get("https://www.jd.com/")
dx.maximize_window()
n=0
while n<=5000:
n+=1000
js = "var d=document.documentElement.scrollTop="+str(n)
dx.execute_script(js)
posted on 2025-05-21 16:54  多测师_肖sir  阅读(98)  评论(0)    收藏  举报