簡體   English   中英

無法使用Java選擇Selenium Webdriver中的復選框

[英]Not able to select a checkbox in Selenium Webdriver with java

我正在嘗試選擇一個復選框,但我也無法在其他線程中找不到任何解決方案。

這是我的HTML代碼下拉列表: 在此處輸入圖片說明

代碼:@FindBy(css =“ input.ng-valid.ng-dirty.ng-touched”)WebElement chrgAllocFee;

chrgAllocFee.click();

但是當我以相同的方式定義和使用其他復選框時,它不起作用。 我發現與其他代碼相比,不同之處在於,此處的html代碼與

請建議如何定義以便可以識別它。

錯誤得到: org.openqa.selenium.NoSuchElementException:否這樣的元素:無法找到元素:{“方法”:“ css選擇器”,“選擇器”:“ input.ng-valid.ng-dirty.ng-touched”} (會議信息:chrome = 69.0.3497.92)

所需的元素是Angular元素,因此您必須誘使WebDriverWait使該元素可單擊,並且可以使用以下解決方案之一:

  • cssSelector

     new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("input.ng-valid.ng-dirty.ng-touched[name='ChargeAllocationFee']"))).click(); 
  • xpath

     new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//input[@class='ng-valid ng-dirty ng-touched' and @name='ChargeAllocationFee']"))).click(); 

我找到了解決方案:我使用javascript單擊了該字段,它工作正常,這是代碼:

JavascriptExecutor js =(JavascriptExecutor)驅動程序;

js.executeScript(“ arguments [0] .click();”,CamWizOR.chrgAllocFee);

CamWizOR.chrgAllocFee-> WebElement名稱

@FindBy(xpath =“ // input [@ name ='ChargeAllocationFee'and @ type ='checkbox']”)

Web元素chrgAllocFee;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM