如何使用Selenium和Python从元素中打印部分文本?

问题描述 投票:0回答:2

我想从 "专辑Vol.1 [我寄给你的每一封信]LP(普通版) "中获取文字。http:/www.ktown4u.comiteminfo?grp_no=231307&goods_no=44363#dt_wrap01。 的描述标签下,但我一直收到这个错误信息。

selenium.common.exceptions.NoSuchElementException:
Message: no such element: Unable to locate element: 
{"method":"xpath","selector":".//div[@class='view_body']/div[2]/span"}

不同的变化给我类似的错误信息。

driver.find_element_by_css_selector('.view_body>div:nth-child(2)>span')
driver.find_element_by_xpath(".//div[@class='view_body']/div[2]/span")
driver.find_element_by_tag_name('span')

我也试过 driver.implicitly_wait(10) 但无济于事。

python selenium xpath css-selectors webdriverwait
2个回答
0
投票

用这个xpath。

'//div[@id="contents"]/div/div/div[2]/span'

在开发工具中测试。

$x('//div[@id="contents"]/div/div/div[2]/span')[0].textContent
"Album Vol.1 [Every letter I sent you] LP (Normal Edition)"

0
投票

要打印文本 专辑 Vol.1 [我给你的每一封信] LP (普通版) 你你要诱导 WebDriverWait 对于 visibility_of_element_located() 您可以使用以下任何一种方式 定位策略:

  • 使用 CSS_SELECTOR:

    driver.get('http://www.ktown4u.com/iteminfo?grp_no=231307&goods_no=44363#dt_wrap03')
    print(re.split('[*\-]',WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "div.payment-order-list>ul>li"))).text)[1])
    
  • 使用 XPATH:

    driver.get('http://www.ktown4u.com/iteminfo?grp_no=231307&goods_no=44363#dt_wrap03')
    print(re.split('[*\-]',WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, "//div[@class='payment-order-list']/ul/li"))).text)[1])
    
  • 控制台输出。

    Album Vol.1 [Every letter I sent you] LP (Normal Edition)
    
  • 说明: : 你必须添加以下进口。

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    
© www.soinside.com 2019 - 2024. All rights reserved.