需要可见元素的 xpath 定位器

Fur*_*uck 4 python selenium xpath webdriver selenium-webdriver

我正在尝试对我的网站进行测试。在某些用户表单上遇到问题。诀窍是,表单中文本字段的数量因用户选项而异(代码中存在禁用的字段,但具有样式 < displayed: none;> 标记),因此我试图找到比定位每个元素更灵活的方法一一并用 try/except 块填充表单。

我正在使用 xpath 定位器

text_fields = driver.find_elements_by_xpath("//div[@class='form-line']/div[@class='form-inputs']/input[@type='text' and not(ancestor::div[@style='display: none;'])]")

问题是萤火虫只定位需要的元素,但是当我使用它时我的 selenium 脚本text_fields,即使没有 < displayed: none;> 标签,打印列表也会给我所有元素

我怎样才能只获得可见元素?

PS对不起我的英语不好^_^

Pet*_*ček 5

您可以按照通常的方式获取所有表单元素,然后遍历列表并删除那些在 上不返回 true 的元素is_displayed()