簡體   English   中英

Selenium Python查找元素部分鏈接文本

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM