簡體   English   中英

Python Selenium 定位元件並點擊它

[英]Python Selenium Locating Element and Clicking on it

我已經被這行代碼困了兩個多星期了,我希望有人能來幫助我!

我正在使用 python selenium 瀏覽包含數據庫的網站。 我想單擊一個鏈接,該鏈接將打開一個新選項卡,我將從該選項卡中提取我正在尋找的信息。 我只需要這樣做一次,因此不需要任何類型的循環,但是,我已經嘗試了多次,並且每次都收到ElementClickInterceptedException錯誤消息。 我嘗試使用WebDriverWait ,然后收到NoSuchElement錯誤消息。 我嘗試通過多種方式搜索元素,包括 id、class 名稱、 xpath和鏈接文本,但沒有運氣!

HTLM 代碼如下所示:

 <a id="reportsForm:j_idt290:4:j_idt295" href="#" class="ui-commandlink ui-widget nav-item " onclick="PrimeFaces.addSubmitParam('reportsForm',{'reportsForm:j_idt290:4:j_idt295':'reportsForm:j_idt290:4:j_idt295'}).submit('reportsForm','_blank');return false;" target="_blank"><span id="reportsForm:j_idt290:4:l2" data-hasqtip="reportsForm:j_idt290:4:tooltipID" aria-describedby="qtip-reportsForm:j_idt290:4:tooltipID">Análise Financeira e de Gestão</span></a> <span id="reportsForm:j_idt290:4:l2" data-hasqtip="reportsForm:j_idt290:4:tooltipID" aria-describedby="qtip-reportsForm:j_idt290:4:tooltipID">Análise Financeira e de Gestão</span>

到目前為止,我已經嘗試過:

afg = driver.find_element_by_link_text("Análise Financeira e de Gestão") 

afg = driver.find_element_by_xpath("//*[contains(text(), 'Análise Financeira e de Gestão')]")

WebDriverWait(driver,10).until(expected_conditions.element_to_be_clickable((By.ID,"reportsForm:j_idt290:4:j_idt295"))).click()

afg = driver.find_element_by_id("j_idt290:4:j_idt295") 

我認為問題可能是因為鏈接文本不是緊跟在href之后,甚至不在同一行中,所以,當我通過鏈接文本搜索時。 找不到...

此外,有時,根本不更改代碼,只需使用 driver.find_element_by_id 方法再次運行它,它就會突然運行一次或兩次,但隨后又停止運行!

關於如何解決這個問題的任何想法?

謝謝您的幫助:!! :)

你可以試試這個 xpath。

//a[normalize-space(.)="Análise Financeira e de Gestão"]

也許您嘗試點擊的元素在一個框架內找到,如果是這種情況,您應該先切換到該 iframe 然后您將能夠對該元素執行所需的操作

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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