友
我正在努力打开Microstrategy仪表板的特定标签,其中仪表板的名称是图像形式。这是我需要点击的标题的HTML代码。 M在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()
答案 0 :(得分:0)
根据您共享的HTML, AUT 基于 JavaScript 和/或 AjaxCalls ,因此您必须诱导 WebDriverWait 并在所需的click()
上调用<img>
您可以使用以下任一选项:
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