首页 > 解决方案 > Selenium CSS 选择器(适用于 Scrapy 但不适用于 Selenium)Python

问题描述

我可能已经尝试过所有类型的选择器,但无法将此选择器输出为文本。Id、css 选择器、xpath 都没有返回结果,但是当在 Scrapy shell 中使用相同的引用时,会返回所需的输出。

知道为什么 Selenium 选择器不起作用吗?

我正在尝试返回 masterBody_trSalesDate 中的文本

発売予定日:7月(2021/4/21予约开始)

https://www.example.co.jp/10777687

    try:
    hatsubai = driver.find_element_by_id('#masterBody_trSalesDate').text

老实说,我已经尝试了所有我能想到的可能的组合元素和选择器,但没有运气,但如前所述,Scrapy shell 确实返回了正确的数据,所以我不确定出了什么问题。

有什么方法可以在不运行脚本的情况下测试 Selenium 选择器,例如 scrapy shell?

如果您有任何建议,谢谢。

图像显示在 scrapy shell 中工作

标签: pythonseleniumscrapy

解决方案


当你使用by_idor by_xpaththen 你不需要 char#

hatsubai = driver.find_element_by_id('masterBody_trSalesDate').text

就这样。


对我有用的最小工作代码

from selenium import webdriver
             
url = 'https://www.1999.co.jp/10777687'

#driver = webdriver.Firefox()
driver = webdriver.Chrome()
driver.get(url)

hatsubai = driver.find_element_by_id('masterBody_trSalesDate').text   
print(hatsubai)

hatsubai = driver.find_element_by_xpath('//*[@id="masterBody_trSalesDate"]').text
print(hatsubai)

hatsubai = driver.find_element_by_css_selector('#masterBody_trSalesDate').text    
print(hatsubai)

顺便提一句:

同样by_class_name- 它只需要没有点的名称.


推荐阅读