我想从 "专辑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)
但无济于事。
用这个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)"
要打印文本 专辑 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