错误: NoSuchElementException:没有这样的元素:无法找到元素:{“ method”:“ xpath”,“ selector”:“ // td [@class ='C($ primaryColor)W(51%)']“} (会话信息:chrome = 77.0.3865.120)
我的代码如下:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome('/Users/ryanyee/Desktop/Python Code/Selenium/Launch
Chrome/chromedriver')
driver.get('https://finance.yahoo.com')
search_box = driver.find_element_by_id('yfin-usr-qry')
search_box.send_keys('GOOG')
search_box.submit()
name = driver.find_element_by_xpath("//td[@class='C($primaryColor) W(51%)']").text()
我的问题是,当我尝试刮取名称文本时会抛出错误。
此外,我在尝试单击“历史数据”按钮时遇到了麻烦
这是我要从'https://finance.yahoo.com/quote/GOOG?p=GOOG'抓取的网站
请让我知道我在做什么错!我已经被困了好几天了!
答案 0 :(得分:1)
尝试在search_box.submit()之后添加等待语句
from selenium.webdriver.support.ui import WebDriverWait
WebDriverWait(driver, 10).until(
EC.presence_of_element_located(By.XPATH, "//td[@class='C($primaryColor) W(51%)']"))
答案 1 :(得分:0)
提交后需要等待。
search_box.submit()
name = WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//td[@class='C($primaryColor) W(51%)']"))).text
print(name)
#this is for click Historical Data
driver.find_element_by_link_text("Historical Data").click()
正在导入:
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC