Selenium code to open facebook messenger and send a message
You have to learn Xpath and how to create Relative xpath.The xpath for the textarea
driver.findElement(By.xpath("//textarea[@class='uiTextareaAutogrow _552m']"));
Anyhow I've made few changes that Include instead of clicking on some other message.It will create a new message and send to your friend
driver.findElement(By.name("mercurymessages")).click();
//wait for 20 seconds
WebDriverWait wait = new WebDriverWait(driver, 20);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("u_0_5")));
driver.findElement(By.id("u_0_5")).click();//To click on Send a New Message Link
//To enter a name into the to field
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//input[@class='inputtext textInput']")));
WebElement friendName = driver.findElement(By.xpath("//input[@class='inputtext textInput']"));
friendName.sendKeys("Deep");//Change it with your friend name
//wait for the user list to appear
wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//li[@class='user selected']")));
friendName.sendKeys(Keys.ENTER);
WebElement messageBox = driver.findElement(By.xpath("//textarea[@class='uiTextareaAutogrow _552m']"));
wait.until(ExpectedConditions.visibilityOf(messageBox));
messageBox.sendKeys("Hi there");
messageBox.sendKeys(Keys.ENTER);
needhelpwithR
Updated on June 05, 2022Comments
-
needhelpwithR almost 2 years
I'm just starting to learn a little bit of Selenium scripting (in Java). Currently I'm trying to open a chat box in Facebook and send a message.
I have gotten up to being able to open the chat box through selenium, however I can't figure out how to actually type things into the text box.
Currently here is my code:import org.openqa.selenium.*; import org.openqa.selenium.chrome.ChromeDriver; public class practice { public static void main(String[] args) throws InterruptedException { System.setProperty("webdriver.chrome.driver", "C:/max/chromedriver.exe"); WebDriver driver = new ChromeDriver(); driver.get("http://facebook.com/login/"); driver.manage().window().maximize(); driver.findElement(By.name("email")).sendKeys("[email protected]"); driver.findElement(By.name("pass")).sendKeys("myPassword"); driver.findElement(By.id("loginbutton")).click(); driver.findElement(By.name("mercurymessages")).click(); driver.findElement(By.cssSelector("a[href*='https://www.facebook.com/messages/conversation-8148306']")).click(); // This has worked randomly. Sometimes the driver will work and open the chat box. Sometimes it will say element not found. I didn't include the full link of the conversation because apparently you don't have to. And it has worked like this in the past. } }
My current issue I'd like resolved is: why does this only work sometimes, and how do i find the text box area on the chat box? I did an Inspect Element and the chat box is very odd. It doesn't have anything like an id or a name, so i can't do By.id, or By.name. I can't figure out how to do it with By.cssSelector. This is what the inspect element for the text box looks like:
textarea class="uiTextareaAutogrow _552m" data-ft=".... more stuff here" onkeydown=" more stuff here" style= "more stuff here."