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' –

相關問題