【问题标题】:How to store the information in a 'NoType' HTML element in Selenium - Python如何将信息存储在 Selenium 中的“NoType”HTML 元素中 - Python
【发布时间】:2013-02-12 19:05:55
【问题描述】:

我正在尝试使用 Selenium - Python 从 HTML 元素中获取一些信息,但我不确定如何保存它。我对编程有点陌生,但对我知道如何编写代码的知识足够了解,但是很难研究答案并将其适应我的代码。我在谷歌上看过,似乎找不到任何能特别帮助我解决我需要的东西。

这是我需要从中获取信息的 HTML 元素:

<span id="ctl00_plnMain_rptAssigmnetsByCourse_ctl00_lblOverallAverage">99.05</span>

我需要检索 99.05 并将其存储在名为“avg”的变量中。

这是我用于 Selenium 测试的代码。

username = raw_input("Username: ")
password = raw_input("Password: ")  
browser = webdriver.Firefox() # Get local session of firefox    
browser.get("https://hac.mckinneyisd.net/homeaccess/default.aspx") # Load page
elem = browser.find_element_by_name("ctl00$plnMain$txtLogin") # Find the query box
elem.send_keys(username)
elem = browser.find_element_by_name("ctl00$plnMain$txtPassword") # Find the password box
elem.send_keys(password + Keys.RETURN)
time.sleep(0.2) # Let the page load
elem = browser.find_element_by_link_text("Classwork").click()
time.sleep(0.2)
???????????????
browser.close()

我应该在 ???... 中放入什么来从对象中获取 99.05 并将其保存为“avg”?我试过了:

content = elem.text("td[@id='ctl00....lblOverallAverage']"

...但是我收到一条错误消息,说我不能这样做,因为它没有类型。

【问题讨论】:

  • 在@nrbaf​​na 的回答下查看我的评论。

标签: python html selenium selenium-rc


【解决方案1】:

试试:

elem = browser.find_element_by_id("ctl00_plnMain_rptAssigmnetsByCourse_ctl00_lblOverallAverage")
avg = elem.getText()

【讨论】:

  • 嗯...现在我收到此错误。 "TypeError: 'unicode' 对象不可调用"
  • @nrbaf​​na, text 是属性而不是方法;所以你应该把你的最后一行改成avg = elem.text。 @Justin Potts,你提到的错误其实和我说的有关。
猜你喜欢
  • 2013-02-19
  • 2023-03-22
  • 1970-01-01
  • 1970-01-01
  • 2021-03-12
  • 2021-10-25
  • 2019-07-21
  • 1970-01-01
  • 2020-05-23
相关资源
最近更新 更多