如何使Selenium / Python在继续运行之前等待用户登录?

我试图在Selenium /

Python中运行一个脚本,该脚本要求在其他位置登录才能运行其余脚本。有什么办法让我告诉脚本暂停并在登录屏幕上等待,以便用户手动输入用户名和密码(也许是等待页面标题更改的内容,然后继续执行脚本)。

到目前为止,这是我的代码:

from selenium import webdriver

from selenium.webdriver.common.by import By

from selenium.webdriver.support.ui import Select

from selenium.common.exceptions import NoSuchElementException

from selenium.webdriver.common.keys import Keys

import unittest, time, re, getpass

driver = webdriver.Firefox()

driver.get("https://www.facebook.com/")

someVariable = getpass.getpass("Press Enter after You are done logging in")

driver.find_element_by_xpath('//*[@id="profile_pic_welcome_688052538"]').click()

回答:

使用WebDriverWait。例如,这将执行google搜索,然后等待某个元素出现,然后再打印结果:

import contextlib

import selenium.webdriver as webdriver

import selenium.webdriver.support.ui as ui

with contextlib.closing(webdriver.Firefox()) as driver:

driver.get('http://www.google.com')

wait = ui.WebDriverWait(driver, 10) # timeout after 10 seconds

inputElement = driver.find_element_by_name('q')

inputElement.send_keys('python')

inputElement.submit()

results = wait.until(lambda driver: driver.find_elements_by_class_name('g'))

for result in results:

print(result.text)

print('-'*80)

wait.until将返回lambda函数的结果,或者selenium.common.exceptions.TimeoutException如果lambda函数在10秒后继续返回Falsey值,则返回a。

您可以WebDriverWait在Selenium书中找到更多信息。

以上是 如何使Selenium / Python在继续运行之前等待用户登录? 的全部内容, 来源链接: utcz.com/qa/429886.html

回到顶部