Вопрос-ответ

How many ways to click on webElement In WebDriver?

Сколько способов щелкнуть по WebElement в WebDriver?

Насколько мне известно, пользователь может щелкнуть по определенному Webelement, используя метод click и еще один способ, например, используя метод Sendkey со значением ASCII для щелчка левой кнопкой мыши.

By Click Method: driver.findElement(By.cssSelector(".dbl")).click();

By Ascii Value : driver.findElement(By.cssSelector(".dbl")).sendKey("ASCII VALUE FOR Left Click");

Помимо этого, есть ли способ выполнить действие click??

Переведено автоматически
Ответ 1

Вы можете использовать:

yourelement.sendKeys(Keys.RETURN) или .sendKeys(Keys.ENTER) : что эквивалентно фокусировке на этом элементе и нажатию RETURN / ENTER для этого элемента

Также существуют методы для этого с использованием Javacript, но обычно это не рекомендуется:

использование неродного Javascript Executor:

((JavascriptExecutor) driver).executeScript("arguments[0].click();", yourelement);

или с помощью библиотеки Javascript:

JavascriptLibrary jsLib = new JavascriptLibrary();`
jsLib.callEmbeddedSelenium(driver, "triggerMouseEventAt", we, "click", "0,0");
Ответ 2

Ниже приведены некоторые методы, которые будут полезны для нажатия кнопки / изображения.

WebDriver driver = new ChromeDriver();
driver.get("http://newtours.demoaut.com");
WebElement signOnImage = driver.findElement(By.xpath("//input[@type='image'][@name='login']"));

// direct method from the API which is recommended always
signOnImage.click();

1 Использование клавиши возврата

    //signOnImage.sendKeys(Keys.RETURN); 

2 Использование JavascriptExecutor

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

2.2
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("document.getElementsByName('login')[0].click()");

3 Использование класса Actions

3.1
Actions actions = new Actions(driver);
actions.click(signOnImage).perform();
3.2
Actions actions = new Actions(driver);
actions.moveToElement(signOnImage).click().perform();
3.3
Actions actions = new Actions(driver);
actions.clickAndHold(signOnImage).release().perform();
3.4
Actions actions = new Actions(driver);
actions.sendKeys(signOnImage, Keys.RETURN).perform();
Ответ 3

submit(); Если текущий элемент является формой или элементом внутри формы, то он будет отправлен на удаленный сервер. Если это приведет к изменению текущей страницы, то этот метод будет заблокирован до тех пор, пока не будет загружена новая страница

Ответ 4

Существует четыре типичных способа выполнения щелчка в Selenium-Java bindings.


  1. Использование findElement


    driver.findElement(By.xpath("//span[text()='Excel']")).click();


  2. Использование WebDriverWait


    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//span[text()='Excel']"))).click();


  3. Использование executeScript


    WebElement button = driver.findElement(By.xpath("//span[text()='Excel']"));
    ((JavascriptExecutor)driver).executeScript("arguments[0].click();", button);


  4. Использование ActionClass


    WebElement button  = driver.findElement(By.xpath("//span[text()='Excel']/parent::button[@aria-controls='report'][contains(@class,'downloadExcel')]"));
    new Actions(driver).moveToElement(button).click().build().perform();


Я использую xpath, вы также можете использовать css, linkText tagName, name partialLinkText, click,,,,,,,,,,,,,,, и т.д. для выполнения,,,,,,,,,,,,,,, и т.д.

java selenium selenium-webdriver