如何使用硒获得停车价格?

2024-10-06 12:40:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用网络抓取来获得这个链接的停车价格,https://application.parkbytext.com/accountus/prepay.htm?locationCode=1127。今天是2美元,这正是我想要的。我用的是python+selenium,但就是拿不到停车费。下面是我正在使用的代码,但有时我击中了目标,但大多数时候我得到的错误

selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: {"method":"class name","selector":"gwt-RadioButton"}.

有人能帮忙吗?提前谢谢

def downtownparking(driver):
driver.get("https://application.parkbytext.com/accountus/prepay.htm?locationCode=1127")
try:
    ### driver.wait = WebDriverWait(driver, 16)
    ### driver.implicitly_wait(20)
    cr = driver.find_element_by_class_name("gwt-RadioButton")
    dayprice = cr.find_element_by_tag_name("label")
    print (dayprice.text)

Tags: namehttpscomapplicationdriverseleniumelementclass
1条回答
网友
1楼 · 发布于 2024-10-06 12:40:26

页面加载需要时间。当webdriver试图找到一个元素时,它还没有出现在DOM树中。添加Explicit Wait

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

cr = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.CLASS_NAME, "gwt-RadioButton"))
)

另一方面,请注意,我将使用input的名称:

cr = WebDriverWait(driver, 10).until(
    EC.presence_of_element_located((By.XPATH, "//input[@name='periodType']/following-sibling::label"))
)
print(cr.text)  # prints "Day - $2.00"

相关问题 更多 >