繁体   English   中英

在网页自动化中使用Selenium捕捉价值

[英]Using Selenium To Capture A Value In Webpage Automation

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

我的代码将一直有效,直到尝试捕获发货时间。 我如何获得价值? 以下是chrome中我要捕获的html值。

<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)

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

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

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

ImplicitlyWait的等效Java代码为:

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

让我知道这是否对您有帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM