定位下拉框,弹框,表单,滚动条,快捷键
下拉框
定位下拉框有三种方法:
1、下标定位下拉框:select_by_index
2、value属性值定位下拉框:select_by_value
3、文本内容定位i下拉框:select_by_visible_text
定位之前要导入select 类:
from selenium.webdriver.support.select import Select

二、实战:
案例网址:
https://yz.chsi.com.cn/zsml/zyfx_search.jsp

1、下标定位下拉框:select_by_index
id属性:
ssdm

from selenium import webdriver #导入selenium第三方库中webdriver
from selenium.webdriver.support.select import Select
dx=webdriver.Chrome() #创建一个对象来来调用谷歌浏览器的对象
dx.get("https://yz.chsi.com.cn/zsml/zyfx_search.jsp") #通过对象打开浏览
dx.maximize_window() #窗口最大化
wz=dx.find_element_by_id("ssdm")
Select(wz).select_by_index(2)

2、value定位下拉框:select_by_value
value值是33

from selenium import webdriver #导入selenium第三方库中webdriver
from selenium.webdriver.support.select import Select
dx=webdriver.Chrome() #创建一个对象来来调用谷歌浏览器的对象
dx.get("https://yz.chsi.com.cn/zsml/zyfx_search.jsp") #通过对象打开浏览
dx.maximize_window() #窗口最大化
wz=dx.find_element_by_id("ssdm")
Select(wz).select_by_value("33") #浙江省

3、文本下拉框:select_by_visible_text

from selenium import webdriver #导入selenium第三方库中webdriver
from selenium.webdriver.support.select import Select
dx=webdriver.Chrome() #创建一个对象来来调用谷歌浏览器的对象
dx.get("https://yz.chsi.com.cn/zsml/zyfx_search.jsp") #通过对象打开浏览
dx.maximize_window() #窗口最大化
wz=dx.find_element_by_id("ssdm")
Select(wz).select_by_visible_text("(33)浙江省")
弹框的类型
1、下载的弹框

2、弹框的类型:
(1)alert弹框
(2)确认性弹框
(3)输入性弹框
(4)上传性弹框
(5)frame弹框
3、实战
(1)alert弹框
地址:
file:///E:/dcs/two/selenium/%E5%BC%B9%E6%A1%86/alert%E5%BC%B9%E6%A1%86.html

from selenium import webdriver #导入selenium第三方库中webdriver
from time import sleep
dx=webdriver.Chrome() #创建一个对象来来调用谷歌浏览器的对象
dx.get("file:///E:/dcs/two/selenium/%E5%BC%B9%E6%A1%86/alert%E5%BC%B9%E6%A1%86.html") #通过对象打开浏览
tk=dx.switch_to.alert #切换弹框
tk.accept() #确认
sleep(2)
tk.accept() #确认
取消
from selenium import webdriver #导入selenium第三方库中webdriver
from time import sleep
dx=webdriver.Chrome() #创建一个对象来来调用谷歌浏览器的对象
dx.get("file:///E:/dcs/two/selenium/%E5%BC%B9%E6%A1%86/alert%E5%BC%B9%E6%A1%86.html") #通过对象打开浏览
tk=dx.switch_to.alert #切换弹框
sleep(3)
tk.dismiss() #取消
(2)确认性弹框
from time import sleep
dx=webdriver.Chrome() #创建一个对象来来调用谷歌浏览器的对象
dx.get(r"file:///E:/dcs/two/selenium/%E5%BC%B9%E6%A1%86/enter.html")
dx.find_element_by_class_name("alert").click()
tk=dx.switch_to.alert #切换弹框
sleep(3)
tk.accept()#确认


(3)输入性弹框

from selenium import webdriver #导入selenium第三方库中webdriver
from time import sleep
dx=webdriver.Chrome() #创建一个对象来来调用谷歌浏览器的对象
dx.get(r"file:///E:/dcs/two/selenium/%E5%BC%B9%E6%A1%86/prompt.html")
dx.find_element_by_class_name("alert").click()
tk=dx.switch_to.alert #切换弹框
tk.send_keys("hz")
tk.accept()

(4)上传性弹框
链接:
file:///E:/dcs/two/selenium/%E5%BC%B9%E6%A1%86/upload_file.html

from selenium import webdriver #导入selenium第三方库中webdriver
from time import sleep
dx=webdriver.Chrome() #创建一个对象来来调用谷歌浏览器的对象
dx.get(r"file:///E:/dcs/two/selenium/%E5%BC%B9%E6%A1%86/upload_file.html")
dx.find_element_by_id("file").send_keys(r"E:\dcs\two\selenium\弹框\table.html")

(5)frame弹框
from selenium import webdriver #导入selenium第三方库中webdriver
from time import sleep
dx=webdriver.Chrome() #创建一个对象来来调用谷歌浏览器的对象
dx.get(r"https://graph.qq.com/oauth2.0/show?which=Login&display=pc&response_type=code&state=84C8F7977ED7653BB9E28C6396A442A045F2A4DBBEE2D115DC961B2CB6DCC8F81DB107254144162E972769188FB4AC23&client_id=100273020&redirect_uri=https%3A%2F%2Fqq.jd.com%2Fnew%2Fqq%2Fcallback.action%3Fuuid%3Da90096cfbd274a3f9fe6123ce21a592dl")
sleep(2)
wz=dx.find_element_by_id("ptlogin_iframe")
dx.switch_to.frame(wz) #进框
dx.find_element_by_link_text("密码登录").click() #点不到
dx.switch_to.default_content() #退框
dx.find_element_by_link_text("服务协议").click() #可以点


定位一个表单

实战
from selenium import webdriver #导入selenium第三方库中webdriver
from selenium.webdriver.support.select import Select
from time import sleep
dx=webdriver.Chrome() #创建一个对象来来调用谷歌浏览器的对象
dx.get("file:///E:/dcs/two/selenium/%E5%BC%B9%E6%A1%86/table.html")
sleep(2)
dx.find_element_by_name("user").send_keys("admin")
sleep(2)
dx.find_element_by_name("passwd").send_keys("123456")
sleep(2)
dx.find_element_by_name("conpasswd").send_keys("123456")
sleep(2)
dx.find_element_by_xpath("/html/body/form/table/tbody/tr[5]/td[2]/input[1]").click()
sleep(2)
dx.find_element_by_xpath("/html/body/form/table/tbody/tr[6]/td[2]/input[1]").click()
sleep(2)
wz=dx.find_element_by_xpath("/html/body/form/table/tbody/tr[7]/td[2]/select")
Select(wz).select_by_visible_text("家里蹲大学")
sleep(2)
dx.find_element_by_xpath("/html/body/form/table/tbody/tr[8]/th/input[2]").click()

滚动条
一、滚动条
语句:window.scrollTo
js写的
案例:


from selenium import webdriver #导入selenium第三方库中webdriver
from time import sleep
dx=webdriver.Chrome() #创建一个对象来来调用谷歌浏览器的对象
dx.get("https://www.jd.com/")
js1="window.scrollTo(0,2000)" #脚本内容,一般滑动1000
dx.execute_script(js1) #执行脚本
sleep(2)
js2="window.scrollTo(0,0)" #脚本内容,回到开始
dx.execute_script(js2) #执行脚本
第二种滚动条的方法:

from selenium import webdriver #导入selenium第三方库中webdriver
from time import sleep
dx=webdriver.Chrome() #创建一个对象来来调用谷歌浏览器的对象
dx.get("https://www.jd.com/")
js1="var d=document.documentElement.scrollTop=2000"
dx.execute_script(js1)
js2="var d=document.documentElement.scrollTop=0"
dx.execute_script(js2)
三、每次拉取递增的量
from selenium import webdriver #导入selenium第三方库中webdriver
from time import sleep
dx=webdriver.Chrome() #创建一个对象来来调用谷歌浏览器的对象
dx.get("https://www.jd.com/")
x=0
while x<=5000:
x+=1000
js1="var d=document.documentElement.scrollTop="+str(x)
dx.execute_script(js1)

快捷键
导入key 类
from selenium.webdriver.common.keys import Keys
输入(send_keys)、全选("a)、剪切("x")、黏贴("v")、确认(Keys.ENTER)
案例:
from selenium import webdriver #导入selenium第三方库中webdriver
from selenium.webdriver.common.keys import Keys
from time import sleep
dx=webdriver.Chrome() #创建一个对象来来调用谷歌浏览器的对象
dx.get("https://www.baidu.com/")
dx.find_element_by_id("kw").send_keys("hz") #输入
sleep(3)
dx.find_element_by_id("kw").send_keys(Keys.CONTROL,"a") 全选
sleep(3)
dx.find_element_by_id("kw").send_keys(Keys.CONTROL,"x") 剪切
sleep(3)
dx.find_element_by_id("kw").send_keys(Keys.CONTROL,"v") 粘贴
sleep(3)
dx.find_element_by_id("kw").send_keys(Keys.ENTER) 确认

快捷键封装:
from selenium import webdriver #导入selenium第三方库中webdriver
from selenium.webdriver.common.keys import Keys
from time import sleep
dx=webdriver.Chrome() #创建一个对象来来调用谷歌浏览器的对象
dx.get("https://www.baidu.com/")
sleep(2)
def kj(wz,*kjc):
dx.find_element_by_id(wz).send_keys(kjc)
sleep(2)
if __name__ == '__main__':
kj("kw","hz")
kj("kw", Keys.CONTROL,"a")
kj("kw", Keys.CONTROL, "x")
kj("kw", Keys.CONTROL, "v")
kj("kw", Keys.ENTER)


浙公网安备 33010602011771号