【问题标题】:Selenium Python Finding text in row and click on onlcik buttonSelenium Python 在行中查找文本并单击 onclick 按钮
【发布时间】:2021-07-13 11:41:52
【问题描述】:

我尝试单击同一行上包含特定单词的onclick 按钮。尝试与ancestror 和兄弟一起玩,但没有成功。

#WebDriverWait(driver,2).until(EC.element_to_be_clickable((By.XPATH,"//td[contains(text()='PE49081')]//following::td[1]/img']"))).click()

我正在处理的表如下:

 <table class="corpsTable" width="100%" cellspacing="1" cellpadding="0" border="0" align="center">
        <tbody><tr class="bginterfaces">              
          <td nowrap="nowrap">&nbsp;</td>
          <td nowrap="nowrap"><div align="center">Version</div></td>
          <td nowrap="nowrap"><div align="center">Type mine</div></td>
          <td colspan="2" nowrap="nowrap"><div align="center">Apsad</div></td>              
          <td colspan="2" nowrap="nowrap"><div align="center">Sra</div></td>              
          <td nowrap="nowrap"><div align="center">Nbr place</div></td>
          <td nowrap="nowrap"><div align="center">P.F</div></td>
          <td nowrap="nowrap"><div align="center">Code auto</div></td>
          <td nowrap="nowrap"><div align="center">P.R</div></td>             
        </tr>
                    <tr class="detailsCorps">           
            <td nowrap="nowrap">
                
          <img src="test2_files/affecter.png" alt="Affecter le véhicule" title="Affecter le véhicule" onclick="AffeMarque(0,'','','&amp;Code_Vers=76768')" width="16" height="16" border="0">                      
                      </td>             
          <td nowrap="nowrap">&nbsp;</td>
          <td nowrap="nowrap">&nbsp;DDMYO</td>
          <td colspan="2" nowrap="nowrap" align="center">
                       9A
                        </td>
          <td colspan="2" nowrap="nowrap"><div align="center">27A</div></td>              
          <td nowrap="nowrap"><div align="center">5</div></td>
          <td nowrap="nowrap"><div align="center">4</div></td>
          <td nowrap="nowrap">&nbsp;PE4901</td>
          <td nowrap="nowrap"><div align="center"></div></td>             
                      </tr><tr class="detailsCorps">            
            <td nowrap="nowrap">
                
          <img src="test2_files/affecter.png" alt="Affecter le véhicule" title="Affecter le véhicule" onclick="AffeMarque(0,'','','&amp;Code_Vers=96165')" width="16" height="16" border="0">                      
                      </td>             
          <td nowrap="nowrap">&nbsp;1.2 PURE TECH 110 ACTIVE</td>
          <td nowrap="nowrap">&nbsp;CUHNZ6S</td>
          <td colspan="2" nowrap="nowrap" align="center">
                       13C
                        </td>
          <td colspan="2" nowrap="nowrap"><div align="center">31I</div></td>              
          <td nowrap="nowrap"><div align="center">5</div></td>
          <td nowrap="nowrap"><div align="center">5</div></td>
          <td nowrap="nowrap">&nbsp;PE49074</td>
          <td nowrap="nowrap"><div align="center">110</div></td>             
                      </tr><tr class="detailsCorps">            
            <td nowrap="nowrap">
                
          <img src="test2_files/affecter.png" alt="Affecter le véhicule" title="Affecter le véhicule" onclick="AffeMarque(0,'','','&amp;Code_Vers=89178')" width="16" height="16" border="0">                      
                      </td>             
          <td nowrap="nowrap">&nbsp;1.2 PURE TECH 110 ALLURE</td>
          <td nowrap="nowrap">&nbsp;CUHNZ6S</td>
          <td colspan="2" nowrap="nowrap" align="center">
                       13C
                        </td>
          <td colspan="2" nowrap="nowrap"><div align="center">31J</div></td>              
          <td nowrap="nowrap"><div align="center">5</div></td>
          <td nowrap="nowrap"><div align="center">5</div></td>
          <td nowrap="nowrap">&nbsp;PE49039</td>
          <td nowrap="nowrap"><div align="center">110</div></td>             
                      </tr><tr class="detailsCorps">            
            <td nowrap="nowrap">

我正在尝试查找例如包含数字 PE49081 的行,然后单击同一行上的 img。

感谢您的帮助

【问题讨论】:

    标签: python selenium selenium-webdriver


    【解决方案1】:

    你几乎是对的,但你做错的唯一一件事是寻找following-sibling,而实际上它首先是父母,然后是descendant

    可能使用此 xpath,应该可以解决您的问题:

    //td[contains(text(), 'PE49039')]/../descendant::img
    

    在代码中:

    WebDriverWait(driver, 10 ).until(EC.element_to_be_clickable((By.XPATH,"//td[contains(text(), 'PE49039')]/../descendant::img"))).click()
    

    【讨论】:

    • 太棒了!有帮助吗?如果有,您能否接受此答案,以便将来的读者可以使用绿色。如果您想接受这个答案,请随时点击投票按钮旁边的复选标记。我很感激你的时间和回应。 ——
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-10
    • 2018-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-29
    • 2017-07-09
    相关资源
    最近更新 更多