【问题标题】:Selenium Python Over lay form and find by Xpath and send valueSelenium Python Overlay表单并通过Xpath查找并发送值
【发布时间】:2014-02-21 14:37:01
【问题描述】:

使用 Selenium Python:
我有一个覆盖表单,其中包含一个电子邮件文本表单。我正在使用以下代码来覆盖表单(工作正常),然后识别电子邮件地址文本框,但没有填写我希望填写电子邮件文本框的值。这是我正在使用的代码。

browser.switch_to_frame('loginModel')
browser.find_element_by_xpath(
    "//*[@id='loginboxif']h1").send_keys('abcd@rediffmail.com')

这是什么错误

 line 10, in <module>
    browser.find_element_by_xpath("//*[@id='loginboxif']/h1").send_keys('abcd@rediffmail.com')
  File "C:\Python27\lib\selenium\webdriver\remote\webdriver.py", line 221, in find_element_by_xpath
    return self.find_element(by=By.XPATH, value=xpath)

【问题讨论】:

  • 我也尝试了以下方法,但再次出错:browser.find_element_by_class_name('input-text email required').send_keys('abcd@rediffmail.com')。它给出了错误 asrowser.find_element_by_class_name('input-text email required').send_keys('mailme.test3@rediffmail.com') File "C:\Python27\lib\selenium\webdriver\remote\webdriver.py",行341,在 find_element_by_class_name 返回 self.find_element(by=By.CLASS_NAME, value=name) 文件“C:\Python27\lib\selenium\webdriver\remote\webdriver.py”,第 681 行,在 find_element {'using': by , '值': 值})['值']
  • 请发布完整的错误以及电子邮件地址文本框的 html。
  • 错误为:- Traceback(最近一次调用最后一次):文件“C:/Python27/Off5th_Registration”,第 25 行,在 browser.find_element_by_class_name('input-text email required')。 send_keys('abcd@rediffmail.com') 文件“C:\Python27\lib\selenium\webdriver\remote\webdriver.py”,第 341 行,在 find_element_by_class_name return self.find_element(by=By.CLASS_NAME, value=name)文件“C:\Python27\lib\selenium\webdriver\remote\webdriver.py”,第 681 行,在 find_element {'using': by, 'value': value})['value'] \
  • 电子邮件地址的 HTML 为

标签: python selenium xpath


【解决方案1】:
//*[@id='loginboxif']h1

不是有效的 XPath 查询。这是你的问题。根据您要执行的操作,您可能需要:

//*[@id='loginboxif']//h1

同样:

find_element_by_class_name('input-text email required')

不允许使用复合类名。

【讨论】:

    【解决方案2】:

    我在您发布的 html 中找不到“h1”。那你为什么要在 xpath 中引用它。

    您可以简单地执行以下操作:

    browser.find_element_by_id('dwfrm_login_username').send_keys('abcd@rediffmail.com')
    

    browser.find_element_by_name('dwfrm_login_username).send_keys('abcd@rediffmail.com')
    

    希望有帮助!

    【讨论】:

    • 谢谢,这有帮助!!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-29
    • 1970-01-01
    • 2021-06-23
    • 2021-10-31
    • 2016-03-12
    • 1970-01-01
    相关资源
    最近更新 更多