【发布时间】:2016-09-14 16:56:54
【问题描述】:
我的目标是使用 Selenium for Python 实现在线账单支付自动化。
使用带有此代码的 Webdriver 成功登录:
from selenium import webdriver
browser = webdriver.Firefox()
browser.get('https://website.com/Home')
emailElem = browser.find_element_by_id('UserName') #finds login username field
emailElem.send_keys('username') #enter the username
passwordElem = browser.find_element_by_id('UserPassword') #finds pw field
passwordElem.send_keys('password') #enters pw
passwordElem.submit() #presses submit button
登录后,会加载一个新页面,下一步是单击一个链接。代码:
browser.implicitly_wait(3) #allow new page to load (also tried 5 seconds)
click_link = browser.find_element_by_link_text("Bill & Payment")
click_link.click()
然后什么也没有发生。没有导航到账单和付款页面。实际链接中有一个<BR> 标签,所以我也尝试包含标签:
click_link = browser.find_element_by_link_text("Bill &<BR>Payment")
但还是一无所获。我还应该尝试哪些其他事情?
错误:
Traceback(最近一次调用最后一次): 文件“/home/captain/.PyCharmEdu30/config/scratches/scratch_1.py”,第 12 行,在 click_link = browser.find_element_by_link_text("Bill & Payment")#点击下一页链接
文件“/home/captain/.local/lib/python3.5/site-packages/selenium/webdriver/remote/webdriver.py”,第 317 行,在 find_element_by_link_text return self.find_element(by=By.LINK_TEXT, value=link_text)
文件“/home/captain/.local/lib/python3.5/site-packages/selenium/webdriver/remote/webdriver.py”,第 752 行,在 find_element '值': 值})['值']
文件“/home/captain/.local/lib/python3.5/site-packages/selenium/webdriver/remote/webdriver.py”,第 236 行,在执行中 self.error_handler.check_response(response)
文件“/home/captain/.local/lib/python3.5/site-packages/selenium/webdriver/remote/errorhandler.py”,第 192 行,在 check_response 引发异常类(消息、屏幕、堆栈跟踪) selenium.common.exceptions.NoSuchElementException:消息:无法定位元素:{"method":"link text","selector":"Bill & Payment"}
堆栈跟踪: 在 FirefoxDriver.prototype.findElementInternal_ (file:///tmp/tmps7uj9u0l/extensions/fxdriver@googlecode.com/components/driver-component.js:10770) 在 fxdriver.Timer.prototype.setTimeout/<.notify>
【问题讨论】:
-
您是否遇到任何错误?
-
你能把这个链接也分享给 HTML 吗??
-
刚刚添加了错误。谢谢
-
请提供该链接标签的来源
标签: python-3.x selenium