Как отправить сообщение в live чат ютуба через Selenium?
<div id="input" contenteditable="" class="style-scope yt-live-chat-text-input-field-renderer" tabindex="0" aria-invalid="" aria-label="Напишіть щось…"></div>
Нужна помощь как отправить сообщение если вместо поля input стоит div?
WebDriver driver=new ChromeDriver();
driver.manage().window().maximize();
driver.get(CHANEL);
Thread.sleep(3000);
driver.findElement(By.xpath("//*[@id=\"buttons\"]/ytd-button-renderer/yt-button-shape/a/yt-touch-feedback-shape/div/div[2]")).click();
driver.findElement(By.xpath("//*[@id=\"identifierId\"]")).sendKeys("[email protected]");
driver.findElement(By.xpath("//*[@id=\"identifierNext\"]/div/button")).click();
Thread.sleep(10000);
driver.findElement(By.xpath("//*[@id=\"password\"]/div[1]/div/div[1]/input")).sendKeys("A@12345678a");
driver.findElement(By.xpath("//*[@id=\"passwordNext\"]/div/button")).click();
Thread.sleep(10000);
driver.findElement(By.xpath("//*[@id=\"input\"]")).sendKeys("text");
driver.findElement(By.xpath("//*[@id=\"button\"]")).click();
Ответы (1 шт):
Автор решения: Vlad
→ Ссылка
Все я понял, перед тем как отправить сообщение в чат нужно переключиться на frame чата иначе селениум не понимает что делать дальше
WebElement chatFrame = driver.findElement(By.id("chatframe"));
driver.switchTo().frame(chatFrame);
WebElement chatInput = driver.findElement(By.id("input"));
chatInput.sendKeys("Привет, чат!");
chatInput.sendKeys(Keys.ENTER);