无法单击.png图像

2024-06-23 19:33:11 发布

您现在位置:Python中文网/ 问答频道 /正文

朋友们

我正在努力打开Microstrategy仪表板的特定选项卡,其中仪表板的名称是以图像的形式显示的。这是我需要点击的标题的HTML代码。我在python中使用selenium web驱动程序。 拜托建议:-你知道吗

<img src="./Images/DSI Images/NewWeb/Active_/Home.png" style="width:144px;height:48px;" onclick="mstrmojo.dom.captureDomEvent('*lK36*kK258*x1*t1526016913721','click', self, event)">

我试着跟着路走,但没有工作:你知道吗

情景1:

在这个场景中,代码一直持续到"print("wait over")",但是发布失败

print("waiting...")
sleep(15)
print("wait over")
home_element = driver.find_element_by_xpath("//*[@id='*lK36*kK258*x1*t1525928239926']/div")
home_element.click()

情景2:

driver.execute_script("document.getElementById('*lK36*kK258*x1*t1525928239926').getElementsByTagName('img')[0].click()")

情景3:

WebDriverWait(driver,10).until(driver.find_element_by_xpath("//img[contains(@src,'DSI Images/NewWeb/Active_/Home')]").element_to_be_clickable)

情景4:

shared_reports_button = driver.find_element(By.XPATH("//img[@src='./Images/DSI Images/NewWeb/Active_/Home.png']"))
shared_reports_button.click()

情景5:

driver.find_elements_by_link_text('./Images/DSI Images/NewWeb/Inactive_/Home.png').click()

情景6:

driver.find_element_by_css_selector("a[href='./Images/DSI Images/NewWeb/Inactive_/Home.png')."])).click(); 

情景7:

WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[@class='mstrmojo-DocImage hasLink']/img src[@class='./Images/DSI Images/NewWeb/Active_/Home.png']"))).click()

Tags: srchomeimgbypngdriverelementfind
1条回答
网友
1楼 · 发布于 2024-06-23 19:33:11

根据您共享的HTML,AUT可能基于JavaScript和/或AjaxCalls,因此您必须归纳WebDriverWait并在所需的<img>上调用click(),您可以使用以下选项之一:

  • CSS_SELECTOR

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "img[href*=Images/NewWeb/Active_/Home.png]"))).click()
    
  • XPATH

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//img[contains(@href,'Images/NewWeb/Active_/Home.png')]"))).click()
    
  • XPATH(绝对属性):

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//img[@href=\"./Images/DSI Images/NewWeb/Active_/Home.png\"]"))).click()
    

注意:必须添加以下导入:

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

相关问题 更多 >

    热门问题