Использование sendKeys () без нажатия на элемент в Selenium - PullRequest
0 голосов
/ 19 декабря 2018

Я хочу ввести строку, а затем отформатировать ее с помощью Cleditor.Однако, когда я щелкнул по значку B , а затем снова нажал на рамку текстовой области, чтобы ввести текст, он потерял жирный эффект.Затем я обнаружил, что если я нажму на значок B , а затем введу текст немедленно, БЕЗ повторного нажатия на рамку текстовой области, текст будет выделен жирным шрифтом.К сожалению, я использую sendKeys () сразу после нажатия на код значка B, поэтому он нажимает на рамку текстовой области и теряет весь эффект жирного шрифта.Вот мой код:

clickElement(driver.findElement(By.xpath("//div[@title='boldText']"))); **//click on the bold icon**
**//switch to the textarea frame**
clickElement2();
driver.switchTo().frame(0);
Thread.sleep(1000);
new Actions(driver).sendKeys(driver.findElement(By.xpath(".//*[@class='cleditor-content']")), "abc").perform();

Можно ли в любом случае ввести текст, не нажимая на область текста?Любое решение будет оценено.

1 Ответ

0 голосов
/ 20 декабря 2018

Как я уже предлагал в комментариях, попробуйте ввести текст, выделите его и нажмите кнопку B (полужирный).

Пример этого в коде C # (должен быть очень похож на Java):

    var actions = new Actions(WebDriver);
    actions.SendKeys(< yourElement >, "your text").KeyDown(Keys.LeftShift).SendKeys(Keys.Home)
                    .KeyUp(Keys.LeftShift).Build().Perform();

    boldButton.Click();
...