【问题标题】:How to identify an input box in Selenium Webdriver如何在 Selenium Webdriver 中识别输入框
【发布时间】:2012-12-16 04:45:11
【问题描述】:

我是第一次使用 Selenium Webdriver,正在运行一个非常简单的脚本,但它不起作用。我想打开 Firefox,转到 LinkedIn,然后在电子邮件登录字段中输入我的电子邮件地址。使用下面的代码,我可以让前两个操作正常工作,但是脚本没有正确识别电子邮件字段,因此我的电子邮件地址永远不会在任何地方输入。

browser = webdriver.Firefox()   #Get local session of firefox
browser.get("http://www.linkedin.com")  #Load page
elem = browser.find_element_by_name("session_key-login")  #Find the login box
elem.send_keys("email@gmail.com" + Keys.RETURN)   #Enter email into login box

如何正确识别邮箱登录框并将其传递给“elem”?

【问题讨论】:

    标签: python selenium


    【解决方案1】:

    尝试给予
    element.send_keys("email@gmail.com");

    而不是

        elem.send_keys("email@gmail.com" + Keys.RETURN)
    

    【讨论】:

      【解决方案2】:

      你就这样吧

      elem.send_keys("email@gmail.com")
      

      更新


      您使用的标识符不正确,您可以使用以下任意一种。

      elem = browser.find_element_by_id("session_key-login")

      elem = browser.find_element_by_name("session_key")

      【讨论】:

      • 刚试了一下,还是不行。我认为问题在于“session_key-login”不是识别电子邮件输入框的正确方法,但我不确定如何命名它,我在 Firefox 上检查元素时看到了该标识符。
      • 尝试使用 elem = browser.find_element_by_id("session_key-login") 而不是 elem = browser.find_element_by_name("session_key-login")
      • 太棒了,谢谢,效果很好。奇怪的是,find_element_by_name 函数可以很好地找到页面主体中的输入字段(即“firstName”找到了名字输入框),但不适用于标题中的输入字段。无论如何,我将使用 id 代替!
      • @Misha,刚刚检查了 Linkedin.com 和 id=session_key-loginname=session_key。我也更新了答案。如果您认为答案对您有所帮助,请将答案标记为正确。 meta.stackexchange.com/questions/5234/…
      猜你喜欢
      • 2013-05-05
      • 1970-01-01
      • 2017-05-30
      • 1970-01-01
      • 2017-04-13
      • 2022-01-28
      • 2013-12-02
      • 1970-01-01
      • 2012-08-05
      相关资源
      最近更新 更多