【发布时间】:2012-04-19 10:45:13
【问题描述】:
我正在尝试对我的网站进行测试。在某些用户表单上遇到问题。诀窍是,表单中文本字段的数量因用户选项而异(代码中存在禁用的字段,但有一个样式 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 对不起我的英语不好^_^
【问题讨论】:
-
def make_an_order(driver): text_fields = driver.find_elements_by_xpath("//div[@class='form-line']/div[@class='form-inputs']/input[@ type='text") for field in text_fields: try: field.clear() except: pass 找到了解决方案。但是这个问题还是很有趣的
-
正在注入 jQuery 并使用
:visible选择器作为替代方案?
标签: python xpath selenium webdriver selenium-webdriver