Selenium CSS 选择器(适用于 Scrapy 但不适用于 Selenium)Python

Selenium CSS selector (Works in Scrapy but not Selenium) Python

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

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

我正在尝试 return masterBody_trSalesDate

中的文字

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

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

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

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

有没有什么方法可以在没有 运行 脚本的情况下测试像 scrapy shell 这样的 Selenium 选择器?

谢谢指教

image shows working in scrapy shell

您需要为此使用 css 选择器:

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

输出:

発売予定日 : 7月(2021/4/21予約開始)

当您使用 by_idby_xpath 时,您不需要 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 相同 - 它只需要没有点的名称 .