[英]Selenium Python find element partial link text
我正在嘗試使用Pythons Selenium模塊單擊其鏈接末尾帶有文本“ xlsx”的元素。 以下是我正在使用的代碼以及該元素的詳細信息。 有人可以看看為什么Python無法找到此元素嗎?
driver.find_element_by_partial_link_text('xlsx').click()
這是元素詳細信息:
<a name="URL$2" id="URL$2" ptlinktgt="pt_new" tabindex="43" onfocus="doFocus_win0(this,false,true);" href="http:******/HSC8_CNTRCT_ITEMS_IMPRVD-1479218.xlsx" onclick="window.open('http:********/HSC8_CNTRCT_ITEMS_IMPRVD-1479218.xlsx','','');cancelBubble(event);return false;" class="PSHYPERLINK">HSC8_CNTRCT_ITEMS_IMPRVD-1479218.xlsx</a>
為了保密起見,我必須刪除URL的某些部分,但是,這不應影響問題的回答。
謝謝。
您可以使用CSS選擇器:
driver.find_element_by_css_selector("a[href*='xlsx']")
如果仍然無法找到該元素,我建議您在與該元素進行交互之前,使用wait語句來確保該元素可見。
感謝您的答復。 就像@Andersson提到的那樣,結果是該窗口位於不同的框架中。
我在find_element之前使用以下代碼解決了該問題:driver.switch_to.frame('ptModFrame_0')。
您可以按類名(類名= PSHYPERLINK)進行抓取。
這應該工作:
import selenium
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
url = ''
driver = webdriver.Chrome('/path/to/chromedriver/executable')
if __name__=='__main__':
driver.get(url)
time.sleep(3)
driver.find_element_by_class_name('PSHYPERLINK').click()
查找屬性時,請確保使用單數““ element”。 喜歡:
driver.find_element_by_class_name('PSHYPERLINK').click()
不:
driver.find_elements_by_class_name('PSHYPERLINK').click()
希望這可以幫助。
請嘗試: driver.find_element_by_xpath(".//a[contains(@href,'xlsx')]")
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.