在元素内部搜索似乎不适用于python硒

时间:2019-01-13 09:50:29

标签: python selenium

在另一个元素中查找元素似乎无法正常工作。

我有一个表,如果行中的某些单元格为空,我想通过该表进行迭代和更新记录。我正在获取要迭代的网络元素列表。

它正确遍历了我通过使用print语句确认的行。在每一行的内部,我要检查某些单元格是否为空,并进行更新。

for _ in range(len(total_records_to_update)):
    for record in self.driver.find_elements(*XPATH):
        try:
            WebDriverWait(self.driver, 3).until(
                lambda d: record.find_element_by_xpath('//td[10][normalize-space(.)="' + text_in_cell + '"]')
            )
            print("Cell is not empty, checking next one")
            continue
        except TimeoutException:
            update_record()
            break # page is refreshed, hence the outer loop

此代码仅更新第一个记录,并跳过其余记录。我看到这些记录已被迭代,但是WebDriverWait立即返回True。我还尝试了以下相同的结果:

WebDriverWait(record, 3).until(
    EC.presence_of_element_located((
        By.XPATH,
        "//td[10][normalize-space(.)='" + text_in_cell + "']"
    ))
)

1 个答案:

答案 0 :(得分:1)

通过使用双斜杠//,您选择的元素是从根开始的,要选择当前子元素td,请尝试使用././td[10]....