我真的坚持使用Python selenium模块

时间:2016-07-06 04:35:55

标签: python selenium

我正在编写一个简单的程序,这样我就可以填写登录表单并发送电子邮件给某人了......虽然我正在使用它,但它不会更多地停止打开一些链接

# Practice Program!

import requests, os, bs4, webbrowser
from selenium import webdriver

url = 'http://google.com'

res = requests.get(url)
res.raise_for_status()

browser = webdriver.Firefox()

browser.get(url)

signinElem = browser.find_element_by_id('gb_70')
signinElem.click()

idElem = browser.find_element_by_id('Email')
idElem.send_keys('not_my_real_id')
idElem.submit()

pwElem = browser.find_element_by_id('Passwd')
pwElem.send_keys('not_my_pw')
pwElem.submit()

mailElem = browser.find_element_by_class_name('gb_P')
mailElem.click()

composeElem = browser.find_element_by_class_name('class="T-I J-J5-Ji T-I-KE L3')
composeElem.click()

代码效果很好,直到达到pwElem,这让我想知道为什么signinElemidElem工作但不是pwElem ??

我碰巧遇到类似的情况,我可以通过一些链接,但其他人没有。这段代码有什么问题?

我得到了以下错误

  

Traceback(最近一次调用最后一次):文件   " C:/Users/Cyber​​/Downloads/WriteMail.py" ;,第22行,在       pwElem = browser.find_element_by_id(' Passwd')文件" C:\ Users \ Cyber​​ \ Downloads \ lib \ site-packages \ selenium \ webdriver \ remote \ webdriver.py",   第269行,在find_element_by_id中       return self.find_element(by = By.ID,value = id_)File" C:\ Users \ Cyber​​ \ Downloads \ lib \ site-packages \ selenium \ webdriver \ remote \ webdriver.py",   第752行,在find_element中       '价值':价值})['价值']文件" C:\ Users \ Cyber​​ \ Downloads \ lib \ site-packages \ selenium \ webdriver \ remote \ webdriver。 PY&#34 ;,   第236行,执行中       self.error_handler.check_response(响应)文件" C:\ Users \ Cyber​​ \ Downloads \ lib \ site-packages \ selenium \ webdriver \ remote \ errorhandler.py",   第192行,在check_response中       raise exception_class(message,screen,stacktrace)selenium.common.exceptions.NoSuchElementException:消息:无法   locate元素:{"方法":" id","选择器":" Passwd"} Stacktrace:       at(file:/// C:/Users/Cyber​​/AppData/Local/Temp/tmpczr__hhf/extensions/fxdriver@googlecode.com/components/driver-component.js:10770)       at(file:/// C:/Users/Cyber​​/AppData/Local/Temp/tmpczr__hhf/extensions/fxdriver@googlecode.com/components/driver-component.js:10779)       at(file:/// C:/Users/Cyber​​/AppData/Local/Temp/tmpczr__hhf/extensions/fxdriver@googlecode.com/components/command-processor.js:12661)       at(file:/// C:/Users/Cyber​​/AppData/Local/Temp/tmpczr__hhf/extensions/fxdriver@googlecode.com/components/command-processor.js:12666)       at(file:/// C:/Users/Cyber​​/AppData/Local/Temp/tmpczr__hhf/extensions/fxdriver@googlecode.com/components/command-processor.js:12608)

2 个答案:

答案 0 :(得分:1)

当您提交public void btnInsert_Click(object sender, EventArgs e) { Word.Application objApplication = Globals.ThisAddIn.Application; Word.Selection objSelection = objApplication.Selection; Word.Range objRange = objSelection.Range; objRange.InsertAfter("Sample Text"); objRange.Collapse(Word.WdCollapseDirection.wdCollapseEnd); objRange.Select(); } 时,

Paasword字段会显示,因此您需要实施Email以等待WebDriverWait字段可见,如下所示: -

password

希望它会对你有所帮助.. :)

答案 1 :(得分:0)

实际上您的错误消息显示:.NoSuchElementException:消息:无法找到元素

我看到谷歌登录页面上有一个下一个按钮,位于电子邮件输入框的正下方。

所以你可以点击下一个按钮找到密码输入框