我的目标是使用Selenium for Python自动完成在线账单支付。使用Selenium Webdriver浏览网站
登录成功使用的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")
但仍然一无所获。我应该尝试哪些其他的事情?
错误:
回溯(最近通话最后一个): 文件 “/home/captain/.PyCharmEdu30/config/scratches/scratch_1.py”,第12行,在 click_link = browser.find_element_by_link_text ( “比尔&付款”)#点击下页
文件 “/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中 'value':value})['value “]
文件 “/home/captain/.local/lib/python3.5/site-packages/selenium/webdriver/remote/webdriver.py”,线路236,在执行 self.error_handler.check_response(响应)
文件 “/home/captain/.local/lib/python3.5/site-packages/selenium/webdriver/remote/errorhandler.py”,线192,在check_response 加注exception_class(消息,屏幕,堆栈跟踪) selenium.common.exceptions.NoSuchElementException:消息:无法找到元件:在FirefoxDriver.prototype.findElementInternal_ (文件::{ “方法”: “链接文本”, “选择器”: “比尔&付款”}
堆栈跟踪/// TMP/tmps7uj9u0l /扩展/[email protected]/components/driver-component.js:10770) at fxdriver.Timer.prototype.setTimeout/< .notify(file:///tmp/tmps7uj9u0l/extensions/[email protected]/components/ driver-component.js:625)
您是否收到任何错误? – alecxe
你能否分享这个链接HTML? –
只是增加了错误。谢谢 – pythonomicon