为什么不按顺序执行硒save_screenshot?

时间:2019-05-10 08:24:27

标签: python-3.x

我使用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()

首先保存屏幕快照,然后显示我保存的图像,输入验证码

0 个答案:

没有答案