【发布时间】:2019-03-14 18:49:52
【问题描述】:
我正在尝试使用通配符输入字段。我有 5 个页面,它们都收集相同的信息,但字段从 1 增加到 5。我的想法是通过获取通用名称(例如“first_name”或“last_name”)来查找元素,但我不断收到“未找到元素”我的尝试中的错误。下面是输入的样子。
<input class="a-field" id="textfield_123" type="text" name="person_1_first_name" value="">
我尝试了以下方法,但它返回“无法定位元素”。
driver.find_element_by_name('//input[contains(@name, "middle_Name")]').clear()
【问题讨论】:
-
如果你知道字符串是什么,为什么要使用通配符?为什么不
"the_part_you_know{}".format(number)? -
@reedinator 我想使用通配符编写,这样我就可以在每个页面上运行相同的代码,而不是重写该过程五次。
-
一个函数的目的不就是避免重写n次过程吗??
-
xpath
//input[contains(@name,'middle_name')]看起来不错。但我预测您的应用程序中可能会有一些框架/窗口。这导致识别元素的问题。希望您在检查元素之前等待足够的时间来完全加载页面。 -
@supputri 使用
driver.find_element_by_name('person_1_first_name')可以正常工作,所以这不是渲染问题。
标签: python python-3.x selenium selenium-webdriver selenium-chromedriver