【问题标题】:Selenium cant find class to iterate and scrape textSelenium 找不到类来迭代和抓取文本
【发布时间】:2021-05-24 04:03:32
【问题描述】:

正如您在第一张图片中看到的那样,我的目标是单击并打开每个“Ver detalles”并获取其中的所有文本(如第三张图片所示。

这是第一个屏幕的 HTML:

这是单击“ver detalles”后打开的屏幕

以及它的 HTML

到目前为止,我已经编写了一些代码行,但我知道它是无用的,因为我正在查看 XPATH 而不是 Class(这只会返回一个数据),但是每当我按类查看并尝试迭代它没有找到类。

如果我说清楚了,请告诉我。先谢谢了

编辑:

感谢@cruisepandey,它帮助我打开了“ver detalles”。现在我被困在试图从中取出文本并单击 de X 将其关闭并继续下一个“ver detalles”。

这是我到目前为止的代码,我尝试按类、标签等查找,但似乎找不到方法:(。

def order_data():

list_of_ver_detalles = driver.find_elements(By.XPATH, "//span[contains(text(),'Ver detalle')]/..")

sleep(3)
for ver in list_of_ver_detalles:
    ver.click()
    print(driver.find_element_by_class_name("jss672").text)
    sleep(2)
    driver.find_element(By.XPATH, "/html[1]/body[1]/div[6]/div[3]/div[1]/div[1]/div[1]/img[1]").click

这是我要打印的文本

这是我要点击的 X

【问题讨论】:

    标签: python selenium class selenium-webdriver web-scraping


    【解决方案1】:

    当您说它没用,因为我正在查看 XPATH 而不是 Class 时,我想澄清您的一些疑问 - 不,不是。要使用任何定位器查找多个元素(假设locator in DOM can represent multiple entity),您所要做的就是使用find_elements 而不是find_element

    像这样存储所有Ver detalle

    list_of_ver_links = driver.find_elements(By.XPATH, "//span[contains(text(),'Ver detalle')]/..")
    for ver in list_of_ver_links: 
        ver.click()
        #Now write the code to fetch order details here
    

    【讨论】:

    • 您好@cruisepandey,感谢您的帮助,我添加了一个新的编辑。我不确定我做错了什么,因为我无法按类、xpath 或任何东西找到元素。我将这两种情况都放在我的代码中,但都没有工作。你能想到他们为什么不工作吗?:(
    • @Darkoder:我怎样才能登录?你有全球信誉吗?我已经给出了下面的代码来获取详细信息.. 试试看
    • texts = driver.find_elements(By.XPATH, "//div[@xpath='1']/descendant::p/span") for txt in texts: print(txt.text)
    • 我怎样才能私信你发送凭据
    猜你喜欢
    • 1970-01-01
    • 2020-08-01
    • 2018-07-25
    • 2017-03-26
    • 1970-01-01
    • 2021-09-05
    • 1970-01-01
    • 2021-10-24
    • 1970-01-01
    相关资源
    最近更新 更多