Unable to upload profile pic in fb via autoit | Selenium Forum
M
Posted on 27/12/2015
i placed appropriate exe file in project location.When i execute the code, execution terminates, with no message or exception.
Following the code:
import java.io.IOException;
import java.util.concurrent.TimeUnit;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.Keys;

public class Facebook_c {

public static void main(String[] args) throws IOException {
// https://www.facebook.com/

WebDriver w=new FirefoxDriver();
w.get("https://www.facebook.com/");
w.findElement(By.xpath("//*[@id='email']")).sendKeys("@gmail.com");//======================enter ur email id
w.findElement(By.xpath("//*[@id='pass']")).sendKeys("");////==========================enter ur pwd
w.findElement(By.xpath("//*[@id='u_0_v']")).click();

w.manage().window().maximize();
w.manage().timeouts().implicitlyWait(50, TimeUnit.SECONDS);

w.findElement(By.xpath("//div[@class='linkWrap noCount']")).click();
w.manage().timeouts().implicitlyWait(50, TimeUnit.SECONDS);
WebElement wi=w.findElement(By.xpath("//div[@class='fbTimelineProfilePicSelector _23fv']"));

Actions A=new Actions(w);
A.moveToElement(wi).build().perform();
wi.click();
w.findElement(By.xpath("//*[@type='file' and @accept='image/*' and @title='Choose a file to upload']")).click();
w.manage().timeouts().implicitlyWait(50, TimeUnit.SECONDS);





Process process =new ProcessBuilder(System.getProperty("user.dir")+"\\src\\idli.exe","open").start();


}

}
========================================================================================
This is put in SciTE:
$WinGetHandle=WinGetHandle ( "File Upload" )
WinActivate($WinGetHandle)
ControlSetText ( "File Upload", "", "[Class:Edit:Instance:1]","C:\Users\Public\Pictures\Sample Pictures\idli.jpg" )
ControlClick ("File Upload", "", "[Class:Button:Instance:1]" )

M
Replied on 27/12/2015

you don't use Auto it for that.

you use actions class


[code:2xanc79y] public static void main(String[] args) throws IOException,
InterruptedException {
WebDriver driver = new FirefoxDriver();
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

driver.get("http://facebook.com");
driver.findElement(By.xpath("//*[@id='email']")).sendKeys(
"its.thakur@gmail.com");
driver.findElement(By.xpath("//*[@id='pass']")).sendKeys("Enjoy@123");
driver.findElement(By.xpath("//*[@id='pass']")).sendKeys(Keys.ENTER);
driver.findElement(
By.xpath("//*[@id='pagelet_welcome_box']/div/div/div/div[2]/a[1]"))
.click();
WebElement profileSelector = driver.findElement(By
.xpath("//div[@id='fbProfilePicSelector']"));

Actions act = new Actions(driver);
act.moveToElement(profileSelector).build().perform();

driver.findElement(
By.xpath("//div[@id='fbProfilePicSelector']/div/a/img"))
.click();

// driver.findElement(By.xpath("//input[@name='file']")).sendKeys("f://ashish.jpg");
// driver.findElement(By.xpath("//input[@name='file']")).click();

act.moveToElement(
driver.findElement(By
.xpath("//ul[@role='menu']/li[3]/a/span/span/form/div/a")))
.clickAndHold(
driver.findElement(By
.xpath("//ul[@role='menu']/li[3]/a/span/span/form/div/a")))
.build().perform();
Thread.sleep(5000);
act.release(
driver.findElement(By
.xpath("//ul[@role='menu']/li[3]/a/span/span/form/div/a")))
.build().perform();

Process process = new ProcessBuilder(System.getProperty("user.dir")
+ "\\src\\uploading\\temp.exe", "F:\\ashish.jpg", "Open")
.start();

}[/code:2xanc79y]