簡體   English   中英

如何使用 Selenium 和 Python 從元素打印部分文本

[英]How to print the partial text from an element using Selenium and Python

我正在嘗試從http://www.ktown4u.com/iteminfo?grp_no=231307&goods_no=44363#dt_wrap01在描述選項卡下獲取文本“Album Vol.1 [Every letter I sent you] LP (Normal Edition)”,但是我不斷收到此錯誤消息。

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)無濟於事。

使用此 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)"

要打印文本Album Vol.1 [Every letter I sent you] LP (Normal Edition) ,您必須為visibility_of_element_located()誘導WebDriverWait ,並且您可以使用以下任一Locator Strategies

  • 使用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])
  • 控制台 Output:

     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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM