selenium插件基础使用
需要的包
from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.chrome.options import Options
必须的步骤代码
# 打开测试浏览器并打开网站 def open(self): global wd wd = webdriver.Chrome() # 谷歌浏览器 wd.get("http://xxxx") # 打开网站 wd.implicitly_wait(10) # 等待元素出现的时间(秒)
- 此代码以将chromedriver扔进环境变量为前提
wd.implicitly_wait()
与sleep()
的作用不一样,前者是搜索到你要操作的元素就点,超过设定时间后终止程序;后者是等待设定的时间后再操作。实战中,特别是那种选择日期之类有选项的,在同一页面操作时,wait()
还没等选择完日期就进行其他操作了,很可能会导致选择日期的下一步失效。
可选的配置
# 隐藏测试模式 def hidden(self): chrome_options = Options() chrome_options.add_argument("--disable-blink-features=AutomationControlled") chrome_options.add_argument("--headless") chrome_options.add_argument('user-agent=浏览器F12搜索')
操作一览
1.查找需要操作的按钮(元素)
wd.find_element(By.xx, “xx”) | 描述 |
---|---|
By.ID | 通过id查找 |
By.XPATH | F12右键复制XPATH |
By.CLASS_NAME | 通过CLASS_NAME查找 |
2.元素操作
element.xx | 描述 |
---|---|
send_keys(“”) | 输入内容 |
click() | 点击 |
find_element() | 查找元素 |
3.其他操作
wd.xx | 描述 |
---|---|
switch_to.frame(“”) | 进入嵌套iframe层 |
switch_to.default_content() | 退回上一级iframe层 |
execute_script(“”) | js操作,找到并点击 |
4.例子
wd.switch_to.frame(wd.find_element(By.XPATH, '//*[@id="xx"]/iframe'))
element = wd.find_element(By.XPATH, '//*[@id="xx"]/input')
element.send_keys("xx")
time.sleep(0.5)
wd.switch_to.default_content()
- 模拟鼠标操作