【问题标题】:Using Selenium To Capture A Value In Webpage Automation使用 Selenium 捕获网页自动化中的价值
【发布时间】:2017-04-18 23:19:22
【问题描述】:

我正在使用 python selenium 脚本从 UPS 网站提取邮政编码之间的运输时间。 "http://ltl.upsfreight.com/shipping/transittimes/transittimes.aspx"

我的代码在我尝试捕获运输时间之前一直有效。如何获取价值?下面是来自 chrome 的 html,其中包含我要捕获的值“1”。

<span id="app_ctl00_ctl01_lblServiceDays" style="font-weight:bold;">1</span>

还有代码本身:

from selenium import webdriver
driver = webdriver.Chrome() 
driver.get('http://ltl.upsfreight.com/shipping/transittimes/transittimes.aspx')
driver.find_element_by_id("app_ctl00_ctl00_OriginZipCodeSelector_OriginZipCodeSelector_txtZip").clear()
driver.find_element_by_id("app_ctl00_ctl00_OriginZipCodeSelector_OriginZipCodeSelector_txtZip").send_keys("07042")
driver.find_element_by_id("app_ctl00_ctl00_DestinationZipCodeSelector_DestinationZipCodeSelector_txtZip").clear()
driver.find_element_by_id("app_ctl00_ctl00_DestinationZipCodeSelector_DestinationZipCodeSelector_txtZip").send_keys("07059")
driver.find_element_by_id("app_ctl00_ctl00_btnSubmit").click()
shiptime = driver.find_element_by_id("app_ctl00_ctl01_lblServiceDays")
print (shiptime)

【问题讨论】:

    标签: python html selenium automation


    【解决方案1】:

    您可以尝试在shiptime = driver.find_element_by_id("app_ctl00_ctl01_lblServiceDays") 末尾添加.get_attribute('value').text

    取决于您要捕获的字段的类型。

    【讨论】:

      【解决方案2】:

      您的代码对我来说看起来不错。在您的代码中添加一些延迟,例如如下所示的 3/5 秒的 ImplicitlyWait,以加载网页 HTML DOM。您的代码可以正常工作。

      ImplicitlyWait 的等效 java 代码是:

      driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

      如果这对你有帮助,请告诉我。

      【讨论】:

      • 我在打印之前添加了它 - 但它没有返回shiptime = driver.find_element_by_id("app_ctl00_ctl01_lblServiceDays") print (shiptime)
      猜你喜欢
      • 2012-10-07
      • 1970-01-01
      • 2022-08-18
      • 1970-01-01
      • 1970-01-01
      • 2020-01-29
      • 1970-01-01
      • 2018-09-29
      • 2017-04-05
      相关资源
      最近更新 更多