find_elements_by_partial_link_text 不会定位元素

find_elements_by_partial_link_text won't locate the elements

在我访问的网站中有以下结构的7个链接:

<tr>
 <td>
  <a href="some link i will need to visit" title="some title"> some text... Episode ....
  </a>
 </td>
 <td> some date </td>
</tr>

现在我使用以下代码获取剧集并将它们放入列表中

chromedriver = "C:/.../chromedriver.exe"

driver = webdriver.Chrome(chromedriver)

driver.get("link containing the content")

episodes = driver.find_elements_by_partial_link_text('Episode')

print "episodes found: ", len(episodes)

这总是打印 episodes found: 0。我已经尝试使用超链接文本开头的一段,但它仍然不起作用。任何帮助将不胜感激。

The link is this

查看 link 前提是 DOM 是

<a href="/Anime/Hunter-x-Hunter-2011-Dub/Episode-007?id=126436" title="Watch anime Hunter x Hunter (2011) (Dub) Episode 007 online in high quality"> Hunter x Hunter (2011) (Dub) Episode 007</a>

在这种情况下,您也可以使用以下内容:

episodes = driver.find_elements_by_xpath("//a[contains(@title,'Episode')]")

编辑:如果您想参考chromedriver的正确用法。看看 :

Running webdriver chrome with Selenium

除了@nullpointer null 指出的内容之外,请注意网页加载的延迟 - 您正在寻找的元素无法立即可用,您需要 wait for them to be present:

from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
driver.get("https://kissanime.to/Anime/Hunter-x-Hunter-2011-Dub")

WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, "//a[contains(@title,'Episode')]")))

episodes = driver.find_elements_by_xpath("//a[contains(@title,'Episode')]")
print(len(episodes))

driver.close()

打印 8.