一、输入框、密码框、按钮、输入
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)
浙公网安备 33010602011771号