簡體   English   中英

如何使用Python通過Selenium單擊圖像

[英]How to click on the image through Selenium using Python

我一直在嘗試選擇一個圖片標簽,但是由於它沒有任何名稱和ID,因此在執行相同操作時遇到了麻煩。

HTML:

<tr __gwt_row="0" __gwt_subrow="0" class="GPBYFDECG">
<td class="GPBYFDEBG GPBYFDEDG GPBYFDEEG datagridCellStyle">
    <div style="outline-style:none;" __gwt_cell="cell-gwt-uid-29">
        ACD DETAILS NEW
    </div>
</td>
<td class="GPBYFDEBG GPBYFDEDG datagridCellStyle">
    <div style="outline-style:none;" __gwt_cell="cell-gwt-uid-30">
        ACD Details
    </div>
</td>
<td class="GPBYFDEBG GPBYFDEDG GPBYFDEOG datagridCellStyle">
    <div style="outline-style:none;" __gwt_cell="cell-gwt-uid-31" tabindex="0">


        //IMAGE THAT I NEED TO SELECT AND CLICK
        <img onload="this.__gwtLastUnhandledEvent=&quot;load&quot;;" src="http://172.00.00.00:8080/demoreports/DemoReportsApp/clear.cache.gif" style="width:25px;height:23px;background:url(http://172.00.00.00:8080/demoreport/DemoReportsApp/0210CFCB6CBE82D7E9FAC82D9F901495.cache.png) no-repeat -333px 0px;" border="0">
    </div>
</td>

碼:

driver.find_element_by_xpath('//img[@onload="this.__gwtLastUnhandledEvent=&quot;load&quot;;"]').click()

上面的代碼不起作用。 還有其他方法,我可以在此img上單擊(),因為它會生成javscript呈現的報告。

所需的元素是動態元素,因此您必須為所需的ElementToBeClickable引入WebDriverWait ,並且可以使用以下定位器策略之一作為解決方案:

  • 使用CSS_SELECTOR

     WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "td.datagridCellStyle img[onload*='gwtLastUnhandledEvent'][src*='demoreports/DemoReportsApp/clear']"))).click() 
  • 使用XPATH

     WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//td[contains(@class, 'datagridCellStyle')]//img[contains(@onload, 'gwtLastUnhandledEvent') and contains(@src, 'demoreports/DemoReportsApp/clear')]"))).click() 
  • 注意 :您必須添加以下導入:

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

暫無
暫無

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

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