Я пытаюсь автоматизировать твиты с помощью Selenium Webdriver в Chrome. Я могу войти в систему и нажать кнопку Tweet, открывая окно Compose new Tweet, но когда я пытаюсь ввести текст с помощью element.sendKeys(tweetMessage);
, я получаю
org.openqa.selenium.ElementNotInteractableException: элемент не
interactable
Использование:
Селен-Java-3.141.59
хром = 74.0.3729.169
(Информация о драйвере: chromedriver = 74.0.3729.6)
Вот соответствующий код:
String composeTweetXpath = "//div[@aria-labelledby='Tweetstorm-tweet-box-0-label Tweetstorm-tweet-box-0-text-label']//div";
String tweetMessage = "This is my test Tweet";
WebDriver driver;
driver = new ChromeDriver();
.
.
.
.
try {
element = wait.until(ExpectedConditions.elementToBeClickable(By.xpath(composeTweetXpath)));
System.out.println("After wait until...");
element = driver.findElement(By.xpath(composeTweetXpath));
System.out.println("After driver.findElement...");
element.click();
System.out.println("After element.click...");
element.sendKeys(tweetMessage);
System.out.println("Found Tweet box and typed message");
} catch ( Exception e1) {
System.out.println("Failed to find Tweet box");
e1.printStackTrace();
}
Я удивлен, что я не получаю ошибку на element.click();
, но на element.sendKeys (tweetMessage); Мой вывод из этого фрагмента:
После ожидания до ...
После driver.findElement ...
После element.click ...
Перемещено в элемент ...
Не удалось найти окно твита
org.openqa.selenium.ElementNotInteractableException: элемент не взаимодействует
Я также пытался использовать:
String js = "arguments[1].value = arguments[0]; ";
System.out.println("Executing : " + js);
javascript.executeScript(js, tweetMessage, element);
... вместо element.sendKeys(tweetMessage);
Не попадает в блок} catch (Exception e1) {, но все равно не вводит текст в поле Compose new Tweet.
Как ни странно, если я использую driver = new FirefoxDriver();
, я получаю сообщение об ошибке TimeoutException в этой строке:
element = wait.until(ExpectedConditions.elementToBeClickable(By.xpath(composeTweetXpath)));
org.openqa.selenium.TimeoutException: ожидаемое условие не выполнено:
ожидание нажатия элемента: By.xpath:
// ДИВ [@ ария-labelledby = 'Tweetstorm-твит-бокс-0-метки
Tweetstorm-tweet-box-0-text-label '] // div (пробовали в течение 10 секунд с
Интервал 500 миллисекунд)