使用webdriver(java)自动填写姓名/地址表单的方法

使用webdriver(java)自动填写姓名/地址表单的方法,java,html,xpath,attributes,webdriver,Java,Html,Xpath,Attributes,Webdriver,我必须使表单自动化,这些表单要求标准的东西,如用户的名字、姓氏、地址等 这些表单位于属于不同客户的网站上,我们无法控制这些属性。属性会有所不同,但通常会有一些一致性 这里有一个例子。“名字”文本字段通常有一个id或名称属性,如firstname、fname、name1等 <input id="firstName" style="width:200px;" value="" type="text"> 然后,我可以循环这些内容,并根据xpath检查它们,例如: //input[cont

我必须使表单自动化,这些表单要求标准的东西,如用户的名字、姓氏、地址等

这些表单位于属于不同客户的网站上,我们无法控制这些属性。属性会有所不同,但通常会有一些一致性

这里有一个例子。“名字”文本字段通常有一个id或名称属性,如firstname、fname、name1等

<input id="firstName" style="width:200px;" value="" type="text">
然后,我可以循环这些内容,并根据xpath检查它们,例如:

//input[contains(@id, '" + firstNameSelectors[index] + "')]
然后,如果找到匹配项,我将退出循环

这在一定程度上是可行的。但问题来了。如果是名字而不是名字呢?或者名字,或者名字。xpath不匹配,因为它区分大小写

我尝试使用此xpath解决区分大小写的问题:

[contains(translate(@id, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'),'" 
+ firstNameSelectors[index] + "')]
。它可以工作,但我必须指定一个属性,这意味着我必须执行两次以检查id属性和name属性。如果我想检查课程,我必须第三次检查。等等


简言之,有没有更好的方法?可能使用javascript执行器?

xpath的版本是什么?我知道有一个类似于//input[lower]的表达式-case@id=您的选择器]如果您在xpath 2中。但似乎您仍然需要检查每个属性。不幸的是,我非常确定webdriver使用xpath 1,所以我不知道。等待专家的回答。
[contains(translate(@id, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'),'" 
+ firstNameSelectors[index] + "')]