2017-09-07 61 views
-3

下面是我嘗試使用chromdriver硒爪哇 - 不能通過XPath來識別的文本框中,CSS

+0

<輸入類= 「FC2 ELX_UserPrompt binding_Screen_cc607e87_a82b_4cac_8c38_939be2ba00ff_SerialNo」 自動聚焦= 「」 佔位符= 「掃描序列號」 平變化= 「OperationOutputHelper.UpdateOutput(此,事件, 'Screen_cc607e87_a82b_4cac_8c38_939be2ba00ff', '的SerialNo');」的onkeyup = 「OperationOutputHelper.UpdateOutput(此,事件, 'Screen_cc607e87_a82b_4cac_8c38_939be2ba00ff', '的SerialNo');」 autosubmit =「true」runat =「server」style =「cursor:auto;」> – Ankit

+3

歡迎來到Stack Overflow!請[編輯]您的帖子以包含您對問題的任何其他信息。避免在評論中添加這些內容,因爲它們難以閱讀並且可以更容易地刪除。您帖子的修改按鈕位於帖子標籤下方。另外請務必閱讀[問]並瞭解是什麼使[mcve]。 –

回答

1

您可以使用以下XPath來識別文本框的HTML片段:

//input[@placeholder="Scan Serial No"] 

RY使用多個屬性

//input[@placeholder="Scan Serial No"][contains(@class,'FC2 ELX_UserPrompt')] 
+0

已經嘗試過,但沒有奏效。它說無法識別元素WebElement validate = driver.findElement(By.xpath(「// input [@ placeholder ='Scan Serial No']」)); – Ankit

0

爲了得到有選擇是我使用的一些技巧。

首先我使用Chrome Developer Tools的內置工具。用ctr + shift + i打開它們。然後找到你想要的元素,按Ctrl + Shift + C然後點擊元素。這突出顯示了元素選項卡中所需的元素。右鍵單擊突出顯示的元素,然後選擇複製>複製選擇器。這會給你一個獨特的CSS選擇器的項目。這適用於除動態元素之外的所有內容,這些動態元素會更改頁面上的ID或位置。

對於動態元素,我使用高級css選擇器。除了任何css屬性以外,您還可以利用html標籤來定位元素。下面是關於如何使用這些https://www.smashingmagazine.com/2009/08/taming-advanced-css-selectors/#comments 對於你特定的元素,你可以做類似input[placeholder='Scan Serial No']

0

您可以使用下面的XPath像樣的寫了起來:類中的XPath

  • //input[@class='FC2 ELX_UserPrompt binding_Screen_cc607e87_a82b_4cac_8c38_939be2ba00ff_SerialNo??'] 
    
  • 類名稱和佔位符

    //input[@class='FC2 ELX_UserPrompt binding_Screen_cc607e87_a82b_4cac_8c38_939be2ba00ff_SerialNo??'][@placeholder='Scan Serial No'] 
    
+0

可能你沒有注意到,但下面的類是動態的,沒有固定的。 binding_Screen_cc607e87_a82b_4cac_8c38_939be2ba00ff_SerialNo – Ankit