如何使用硒python遍历表中的所有tr元素

问题描述 投票:0回答:3

如何遍历所有tr以在td中给出值。在我的代码中,它重写了相同的tr / td。

我的桌子。

#qty to add
<tbody id="gridview-1161-body">
<tr id="gridview-1161-record-19842148" data-boundview="gridview-1161" class="x-grid-row x-grid-data-row" tabindex="-1">
<td role="gridcell" class="x-grid-cell x-grid-td x-grid-cell-headerId-gridcolumn-1158  rp-grid-editable-cell  rp-grid-editable-cell" id="ext-gen2535">
<div class="x-grid-cell-inner " style="text-align:right;">
<div class="rp-invalid-cell rp-icon-alert-require-field">
</div>
<input id="numberfield-1243-inputEl" type="text" role="spinbutton" name="Quantity" class="x-form-field x-form-text x-form-focus x-field-form-focus x-field-default-form-focus" autocomplete="off" style="width: 100%;"> 
</div></td>
</tr>

same like 
<tr>..</tr></tbody>

这里所有的id都是通过代码动态生成的。我的python代码:

#add qty
    rowCount=len(driver.find_elements_by_xpath("//tbody[@id='gridview-1161-body']/tr"));
    print(rowCount)
    for row in rowCount:
        element = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "td.x-grid-cell.x-grid-td.rp-grid-editable-cell[role='gridcell']")))
        element.click()
        time.sleep(2)

        #input box to give qty-working for this id
        driver.find_element(By.ID, "numberfield-1243-inputEl").send_keys('10')
        driver.find_element(By.ID, "numberfield-1243-inputEl").send_keys(Keys.ENTER)

由于动态ID,我无法提供find_element(By.ID),所以我正在使用CSS_SELECTOR查找td,但是它覆盖了相同的td ..如何赋予tr.next遍历表中的所有tr?

python selenium selenium-webdriver webdriverwait
3个回答
0
投票
处理动态ID得出WebDriverWait()visibility_of_all_elements_located()然后选择XPATH选项。

0
投票
获取所有行,然后找到子项tdinput

0
投票
要遍历祖先<input>标签中的所有子<tr>标签以发送

字符序列

© www.soinside.com 2019 - 2024. All rights reserved.