2017-03-09 46 views
0

HTML代碼複選框的XPath使用Java澄清硒的網絡驅動器 - 銷售隊伍應用

<div class="modal-footer slds-modal__footer" data-aura-rendered-by="2805:0"> 
<div class="rssDialogText grantAccessCheckbox packagingSetupUIRssDialogFooter" data-aura-rendered-by="2595:0" data-aura-class="packagingSetupUIRssDialogFooter"> 
<input type="checkbox" id="2596:0" data-aura-rendered-by="2600:0" class="uiInput uiInputCheckbox uiInput--default uiInput--checkbox" data-aura-class="uiInput uiInputCheckbox uiInput--default uiInput--checkbox" data-interactive-lib-uid="157"> 

操作:

點擊複選框

我的XPath

//input[@data-aura-class='uiInput uiInputCheckbox uiInput--default uiInput--checkbox'] 

//input[@class='uiInput uiInputCheckbox uiInput--default uiInput--checkbox'] 

但兩者的XPath不工作,我沒有得到這樣的元素

no such element: Unable to locate element: {"method":"xpath","selector":"//input[@class='uiInput uiInputCheckbox uiInput--default uiInput--checkbox']"} 

複選框,單擊代碼:

driver.findElement(By.xpath("//input[@class='uiInput uiInputCheckbox uiInput--default uiInput--checkbox']")).click(); 
driver.findElement(By.xpath("//input[@data-aura-class='uiInp‌​ut uiInputCheckbox uiInput--default uiInput--checkbox']")).click(); 

注:複選框ID動態

請解決或糾正我xpath

enter image description here

+0

怎麼樣'// DIV [@數據的光環級=「packagingSetupUIRssDialogFooter」] /輸入[@類型=「複選框」]'?還有你用來點擊複選框的代碼 – Andersson

+0

'// div [包含(class,'uiInputCheckbox')和@ type =「checkbox」]'如果你沒有得到獨特的元素,請更改類。還有,你如何驗證你的xpath,希望你使用的是螢火蟲。 –

+0

@andersson:chcekbox click code driver.findElement(By.xpath(「//輸入[@ class ='uiInput uiInputCheckbox uiInput - default uiInput - checkbox']」))。click(); ();})。點擊();}}。點擊(); – Prabu

回答

0

這可能是計時問題:如果input字段動態生成,則可能最初不存在DOM。試試下面的代碼要等到DOM目前複選框,它可點擊:

WebDriverWait wait = new WebDriverWait(webDriver, 10); 
wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//div[@data-aura-class='packagingSetupUIRssDialogFooter']/in‌put[@type='checkbox']"))).click(); 
+0

no andersson它不工作, – Prabu

+0

您是否遇到'TimeOutException'? – Andersson

+0

是的,我收到timeoutexception,在我的問題中添加圖像請參閱 – Prabu