1

我的应用程序中有一个字段有两个HTML代码。我想在其XPath中使用OR,以便在任何HTML代码中运行该命令。但我无法在xpath中使用OR。当我使用OR时,它不检测字段。以下是两个HTML代码。任何人都可以使用OR来创建XPath,以便它始终运行? 首先HTML代码 -我的应用程序中有一个字段有2个html代码。当我在其Xpath中使用OR时,它不检测元素。任何人都可以帮我制作一个合适的xpath

<input autocomplete="off" class="text" maxlength="30" tabindex="2" type="password" id="pswd-input" name="password" onfocus=" pswdLabel.style.display='none';pswdWrap.style.margin='0' " onblur="if(this.value==''){pswdLabel.style.display='block';pswdWrap.style.margin='0 0 -14px'}else{pswdWrap.style.margin='0'} "> 

,这是第二个HTML代码 -

<input type="password" name="password" maxlength="35;" autocomplete="off" size="37" value="">==$0 

任何帮助将不胜感激...

+1

希望你已经错过了你的第一个HTML代码,XPath的,它会更好,如果你给我们完整的HTML的而不是单一元素的 –

+1

我不张贴两个HTML码。在 以下发帖 第一个 - SECOND ONE- == $ 0 –

+0

您试过的代码在哪里? – Guy

回答

1

尝试使用管道(|)运算

driver.findElement(By.xpath("//input[@id='pswd-input'] | //input[@type='password']")); 
+1

它与“或”,与“|”它不起作用 –

+0

所以你的意思是说driver.findElement(By.xpath((“// * [@ id ='pswd-input']”)OR(“//.*[email protected] ='password']” ));正在工作? –

+1

不,它使用小或 - driver.findElement(By.xpath((“// * [@ id ='pswd-input']”)或(“//。* 。@ type ='password']“)); –

0

你们非常接近:

driver.findElement(By.xpath("//input[@id='pswd-input' or @type='password']")); 

但是当两个版本都有type =“password”和name =“password”时,为什么需要OR?不会有一个简单的By.name会更好吗?这将匹配这两项因素:

driver.findElements(By.name("password")); 
+1

是的,但第一个它不工作..它只工作与id ='pswd-input' –

相关问题