您無法將多個鏈接文本傳遞給find_element_by_link_text()
。
您有多種方法可以解決問題。你可以,例如,切換到使用XPath定位 - 動態地構建一個表達檢查所有的鏈接文本的變化:
link_texts = ["Head", "Feet", "Hand", "Fingers"]
expression = "//a[%s]" % (" or ".join(". = '%s'" % link_text for link_text in link_texts))
for link in driver.find_elements_by_xpath(expression):
link.click()
或者,你可以在一個循環處理NoSuchElementException
exception發出find_element_by_link_text()
(如果一個元素不發現)正確:
from selenium.common.exceptions import NoSuchElementException
link_texts = ["Head", "Feet", "Hand", "Fingers"]
for link_text in link_texts:
try:
link = driver.find_element_by_link_text(link_text)
link.click()
except NoSuchElementException:
print("Link text '%s' not found" % link_text)
後一種選擇會比較慢,但是在同一時間更加明確。
第二個建議結果爲「NameError:name'NoSuchElementException'未定義」...我明天想到第一個,我不能讓它工作..謝謝隊友 –
@CuriousCat是的,你需要導入它,添加到答案。希望有所幫助。 – alecxe
第二部作品,謝謝alecxe,第一部完全沒有做過.. –