Selenium нажмите на флажок -React :: before - PullRequest
0 голосов
/ 08 ноября 2019

Я пытаюсь установить флажок, ниже приведены некоторые примеры, которые я пробовал:

// label [string () = ('Notify user')] / i

// div [@ class = 'b-checkbox']

// div [@ class = 'b-checkbox'] // метка // input [@ type = 'checkbox']

<div class="b-checkbox"><label class=""><input type="checkbox" value="on"><!-- react-text: 563 -->Notify user<!-- /react-text --><i class="b-custom"></i></label></div><div class="b-body b-mh-medium"><div class="b-body b-mv-small"><fieldset class="b-form-group"><label class="currency-input-label" for="currency-input-field"><span class="currency-input-label" disabled=""><span>When should we notify you that funds are low?</span></span><br><span class="b-prepend">$</span><input type="number" class="b-inline b-w-medium b-form-control" id="currency-input-field" value="" disabled=""><span class="b-text-base currency-input-grey-text">Remaining</span></label><span class="b-help b-hide"></span><span class="b-error b-hide"></span></fieldset></div></div>  

Однако я получаю элемент, не подлежащий устранению. Любое предложение? Заранее спасибо.

1 Ответ

0 голосов
/ 08 ноября 2019

Попробуйте использовать Actions:

WebElement element = driver.findElement(By.xpath("//div[@class='b-checkbox']//label//input[@type='checkbox']"));
Actions action = new Actions(driver);
action.moveToElement(element).click(element).build().perform();

Или JavascriptExecutor:

JavascriptExecutor js = (JavascriptExecutor)driver;
js.executeScript("arguments[0].click();", element);

После импорта:

import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.JavascriptExecutor;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...