簡體   English   中英

單擊 Python Selenium 中特定行的表中的按鈕

[英]Click button in a table on a specific row in Python Selenium

我有一個帶有表格和幾行的頁面,其中一些行與其他行具有相同的文本。

如果同一行上的文本在<td class="user_type"> real 中包含文本“ real ”,我想單擊“刪除”按鈕。

<tr id="5gf5h5gh4rthhgh1" data-id="1418753">
    <td class="website">www.123.com</td>
    <td class="user_type">real</td>
    <td class="ip_address">123.123.1.1 ()</td>
    <td class="actions">
        <div class="list-action">   
            <button class="btn default check check green markAsChecked" type="button">
                <i class="fa fa-check green markAsChecked"></i>Delete</button></div></td>
</tr>

<tr id="5gf5h5gh4g5j1gh4" data-id="1418753">
    <td class="website">www.123.com</td>
    <td class="user_type">virtual</td>
    <td class="ip_address">88.123.2.2 ()</td>
    <td class="actions">
        <div class="list-action">   
            <button class="btn default check check green markAsChecked" type="button">
                <i class="fa fa-check green markAsChecked"></i>Delete</button></div></td>
</tr>

您可以嘗試以下 xpath:

//tr//td[@class="user_type" and text()="real"]//following-sibling::td//button[text()="Delete"]

要在同一行包含文本real時單擊帶有文本作為Delete的元素,您必須為element_to_be_clickable()引入WebDriverWait並且您可以使用以下任一基於Locator Strategies

  • 使用XPATH和具有類屬性的跟隨兄弟

     WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//td[@class='user_type' and text()='real']//following-sibling::td[@class='actions']//button[contains(., 'Delete')]"))).click()
  • 使用XPATH和帶有索引的跟隨兄弟

     WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//td[@class='user_type' and text()='real']//following-sibling::td[2]//button[contains(., 'Delete')]"))).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