Как выделить элемент с помощью Selenium WebDriver
В обычных случаях Selenium WebDriver не имеет метода выделения. Поэтому я использую JavaScriptExecuter для решения этой проблемы. Нам нужно написать несколько строк кода для выделения элементов с помощью Selenium WebDriver. Мы должны использовать интерфейс JavaScriptExecutor, чтобы выделить элемент.
Что такое JavaScriptExecutor?
Веб-элементы управления иногда плохо реагируют на команды Selenium, и мы можем столкнуться с проблемами. Мы используем интерфейс JavaScriptExecutor для решения таких сценариев.
Он предоставляет механизм для выполнения Javascript драйвером Selenium. Он предлагает методы для «executescript» и «executeAsyncScript» для запуска JavaScript в выбранной в данный момент структуре или окне.
Нет необходимости писать разные сценарии для использования сценария Selenium WebDriver для запуска JavaScript в приложении. Просто используйте предопределенный интерфейс под названием JavaScriptExecutor.
В приведенном ниже коде показан мой метод выделения элемента в Selenium.
package Demo; import org.openqa.selenium.By; import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; import org.testng.annotations.Test; public class DemoHighlight { @Test public void highlightElement() { //Setting Property System.setProperty("webdriver.chrome.driver", "/Users/demouser/Downloads/chromedriver"); //Instantiating driver object WebDriver driver = new ChromeDriver(); //Launching Gmail driver.get("https://www.gmail.com"); //Collecting the webelement WebElement ele = driver.findElement(By.id("identifierId")); //Calling the highlighter method highLighterMethod(driver, ele); ele.sendKeys("[email protected]"); } //Creating my own method public void highLighterMethod(WebDriver driver, WebElement element){ JavascriptExecutor js = (JavascriptExecutor) driver; js.executeScript("arguments[0].setAttribute('style', 'background: green; border: 3px solid blue;');", element); } }