我今晚刚开始使用Selenium 2,所以这将是非常基本的(我希望......)。
我正在尝试在http://contentparadise.com/
登录我的帐户我转到登录页面https://www.contentparadise.com/signin.aspx,然后输入id / pw,然后提交。但即使使用正确的id / pw,它也会返回到登录页面 - 添加了一个小消息框,其中包含“发生以下错误”字样。显然代码中的id / pw是错误的,我试图将其检测为错误 - 但即使使用我的真实id / pw我也能得到它。
如何检测和阅读此消息框,为什么正确的设置没有进入主页?
我在另一个网站上使用相同的代码,使用正确的设置,它会将我带到主页。
这是使用javascript登录页面的情况吗?如果您查看登录页面的来源,请查找字符串“ ”以启动表单的该部分。
以下是代码:
from selenium import webdriver
import sys
import os
userID = "wajahbaru"
pw = "marmalade"
wdrv = webdriver.Firefox()
wdrv.get("https://www.contentparadise.com/signin.aspx")
print "Page #1 title is: " + wdrv.title; # should be "Sign In"
unamefield = wdrv.find_element_by_name("ctl00$ContentPlaceHolder1$txtUserName").send_keys(userID)
pwdfield = wdrv.find_element_by_name("ctl00$ContentPlaceHolder1$txtPassword").send_keys(pw)
pwdfield = wdrv.find_element_by_name("ctl00$ContentPlaceHolder1$btnLogin").click()
print "Page #2 title is: " + wdrv.title; # if logged in this should be "Content Paradise: Buy or Sell Software, 2D Content, 3D Models and Audio."
wdrv.get_screenshot_as_file("test.jpg")
wdrv.quit()
答案 0 :(得分:1)
如何检测和阅读此消息框,为什么正确的设置没有进入主页?
要检测错误消息框,您可以使用id="error"
搜索元素:
#!/usr/bin/env python
from contextlib import closing
from selenium.webdriver import Firefox as Browser
from selenium.webdriver.support.ui import WebDriverWait
timeout = 10 # seconds
with closing(Browser()) as browser:
browser.get('https://www.contentparadise.com/signin.aspx')
assert browser.title == "Sign In"
login, password, submit = map(browser.find_element_by_id,
['ctl00_ContentPlaceHolder1_txtUserName',
'ctl00_ContentPlaceHolder1_txtPassword',
'ctl00_ContentPlaceHolder1_btnLogin'])
enter_text = lambda x, text: (x.clear(), x.send_keys(text))
enter_text(login, "abc")
enter_text(password, "pas$W0rd")
submit.click()
# wait for error or success
value = WebDriverWait(browser, timeout).until(
lambda x: ("Content Paradise" in x.title and "ok" or
x.find_element_by_id('error')))
if value != "ok":
print "error:", value.text
browser.get_screenshot_as_file('test.jpg')
答案 1 :(得分:0)
在下面的链接中搜索“弹出对话框”..如果您想了解更多信息,搜索您在Google中找到的代码,您将获得一些好东西; - )
http://readthedocs.org/docs/selenium-python/en/latest/navigating.html?highlight=popup