Python 我应该使用哪个循环来使用Selenium删除表中的所有数据项?

Python 我应该使用哪个循环来使用Selenium删除表中的所有数据项?,python,selenium,selenium-webdriver,Python,Selenium,Selenium Webdriver,我需要编写一个循环来删除表中的所有条目。要删除条目,我需要使用Selenium“勾选”删除复选框并单击“保存”。但是,每个条目都有一个唯一的“复选框”名称。第一个条目称为delete0,第二个条目称为delete1,依此类推。我希望创建一个循环,检查是否存在“delete0”,如果存在,则删除该条目,直到没有更多条目为止 我尝试使用while循环,但不确定应该实现什么条件,因为我是Python新手。这是我尝试过的循环: while driver.find_element_by_class_nam

我需要编写一个循环来删除表中的所有条目。要删除条目,我需要使用Selenium“勾选”删除复选框并单击“保存”。但是,每个条目都有一个唯一的“复选框”名称。第一个条目称为delete0,第二个条目称为delete1,依此类推。我希望创建一个循环,检查是否存在“delete0”,如果存在,则删除该条目,直到没有更多条目为止

我尝试使用while循环,但不确定应该实现什么条件,因为我是Python新手。这是我尝试过的循环:

while driver.find_element_by_class_name("delete0") exist:
    driver.find_element_by_xpath("//input[@type='checkbox']").click()
    driver.find_element_by_id("save-tcp").click()
这是网站的代码:

<form action="TCPFile" method="POST" enctype="multipart/form-data">
                                <div class="form-bottom">
                                    <div class="table-responsive">
                                        <table class="table table-bordered text-center" id="table_tcpfile">
                                            <thead class="log">
                                                <tr>
                                                    <th class="text-center">Index <i class="fa fa-info-circle" data-toggle="tooltip" data-placement="top" title="This index number is used to map to the corresponding index number on the receiver TCP to file settings page."></i></th>
                                                    <th class="text-center">Port <i class="fa fa-info-circle" data-toggle="tooltip" data-placement="top" title="" data-original-title="Enter port of TCP server."></i></th>  
                                                    <th class="text-center">Delete</th>
                                                </tr>
                                            </thead>
                                            <tbody>

                                                    <tr>             
                                                        <td><input type="text" class="Map disabled-input" name="index0" value="0"></td>
                                                        <td><input type="text" class="Map disabled-input" name="port0" value="12333"></td>          
                                                        <td><input type="checkbox" class="" name="delete0"></td>
                                                    </tr>

                                                    <tr>             
                                                        <td><input type="text" class="Map disabled-input" name="index1" value="1"></td>
                                                        <td><input type="text" class="Map disabled-input" name="port1" value="12345"></td>          
                                                        <td><input type="checkbox" class="" name="delete1"></td>
                                                    </tr>

                                                    <tr>             
                                                        <td><input type="text" class="Map disabled-input" name="index2" value="2"></td>
                                                        <td><input type="text" class="Map disabled-input" name="port2" value="13555"></td>          
                                                        <td><input type="checkbox" class="" name="delete2"></td>
                                                    </tr>

                                            </tbody>
                                        </table>
                                    </div>
                                </div>
                                <div class="button-box col-lg-12">
                                    <button type="submit" class="col-2 form-control btn btn-primary " id="save-tcp">Save</button>
                                </div>
                            </form>

指数
港口
删除
拯救

预期结果是删除所有数据项。

您可以通过部分@name值匹配输入字段:

尝试这样做(如果语法不正确,请道歉,不是Python专家):


Python列表没有诸如
size
(您的意思是
len(复选框)
?)之类的属性。而且
存在
关键字实际上不存在否。还是不行。现在还不清楚
中的复选框[{i}]应该做什么。请注意,您没有声明
i
变量,并且
复选框[{i}]
语法无效,谢谢。我错过了。咖啡太少了。现在有意义了吗?是的,现在语法还可以,但在你的代码中,我想你是在试图处理每次单击后复选框数量变小的情况,对吗?在这种情况下,DOM应该在每次单击时更新,因此
复选框在第一次迭代后将变得过时,并且您将得到
StaleElementReferenceException
for item in driver.find_elements_by_xpath("//input[starts-with(@name, 'delete')]"):
    item.click()
driver.find_element_by_id("save-tcp").click()
checkboxes = driver.find_elements_by_css_selector("input[type='checkbox']")
while checkboxes:
   driver.find_element_by_css_selector("//input[@type='checkbox']").click() 
   checkboxes = driver.find_elements_by_css_selector("input[type='checkbox']")