我仍然建议您通过 XPATH* 使用 linkText 。原因xpath:是绝对的,如果 从HTML中 添加 或
删除了 另一个div ,则可能失败。而更改链接文本的机会很小。/html/body/div[5]/section/div[8]/div[1]/a[1]
*****
因此,代替此 代码 :
elm = driver.find_elements_by_xpath("/html/body/div[5]/section/div[8]/div[1]/a[1]").click()试试这个代码:
annual_link = driver.find_element_by_link_text('Annual')annual_link.click()是的@Druta是正确的,
find_element用于一个Web元素和Web元素
find_elements列表。拥有总是很好
explicitwait。
创建显式等待的实例,如下所示:
wait = WebDriverWait(driver,20)
并使用如下的等待引用:
wait.until(EC.elementToBeClickable(By.link_TEXT, 'Annual'))
更新:
from selenium import webdriverlink = 'https://www.investing.com/equities/apple-computer-inc-balance-sheet'driver = webdriver.Firefox()driver.maximize_window()wait = WebDriverWait(driver,40)driver.get(link)driver.execute_script("window.scrollTo(0, 200)")wait.until(EC.element_to_be_clickable((By.link_TEXT, 'Annual')))annual_link = driver.find_element_by_link_text('Annual')annual_link.click()print(annual_link.text)确保导入这些:
from selenium.webdriver.common.keys import Keysfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as EC



