我使用Selenium登录系统。
我想在browser.save_screenshot(r'img\login.png')
完成后输入验证码,但是我必须先输入验证码,不知道为什么save_screenshot(r'img\login.png')
应该先执行。
在save_screenshot()
之后如何输入验证码?
我使用了time.sleep()
,它没有用。
# -*- encoding: utf-8 -*-
'''
@File : login.py
@Modify Time @Author @Desciption
------------ ------- -----------
2019/5/10 11:09 Jonas None
'''
import time
from selenium.webdriver.chrome.options import Options
from selenium import webdriver
chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')
path = 'E:\开发工具\chromedriver.exe'
browser = webdriver.Chrome(executable_path=path,chrome_options=chrome_options)
url = "http://10.153.195.92:8080/rdmp/rdmp/login.jsp"
browser.get(url)
browser.save_screenshot(r'img\login.png')
time.sleep(3)
# 查找input输入框
my_input = browser.find_element_by_id('username')
# 往框里面写入文字
my_input.send_keys("lijun2")
# 查找input输入框
my_input = browser.find_element_by_id('password')
# 往框里面写入文字
my_input.send_keys("1qaz!QAZ")
# 查找input输入框
my_input = browser.find_element_by_id('verificationcode')
# 往框里面写入文字
time.sleep(3)
code = input("please input verfication_code")
my_input.send_keys(code)
time.sleep(3)
# 让browser执行简单的js代码,模拟滚动到底部
js = 'document.body.scrollTop=10000'
browser.execute_script(js)
# 登录按钮
button = browser.find_element_by_xpath('//button')
button.click()
time.sleep(3)
browser.save_screenshot(r'img\login_result.png')
browser.switch_to.frame('mainFrame')
# 签出按钮
button = browser.find_element_by_xpath('/html/body/div[4]/div[1]/div[2]/ul/li[4]/p/a')
button.click()
time.sleep(3)
browser.save_screenshot(r'img\qianchu.png')
browser.quit()
首先保存屏幕快照,然后显示我保存的图像,输入验证码