I have to click on tooltip which then opens a popup. I am unable to click on it and i get an error - no such element found.
Can anyone please help me on this. I'm sure im making some mistake in xpath.
Can you try this code.
public static void main(String[] args)
{
System.setProperty("webdriver.gecko.driver", "/home/santhoshkumar/Softwares/Selenium/drivers/geckodriver");
WebDriver driver = new FirefoxDriver();
driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
driver.get("https://compare.giffgaff.com/creditcards#/results/zeroPercentBalanceTransfer");
driver.findElement(By.xpath("//h4[contains(text(),'Calculate potential savings')]/parent::div/div[1]//div[#class='c-tooltip']//span")).click();
}
Related
I try to upload a pic on this site but exception comes up. Here is my code.
public static void main(String[] args) throws InterruptedException {
System.setProperty("webdriver.chrome.driver", "I:\\Selenium\\chromedriver.exe");
WebDriver driver= new ChromeDriver();
JavascriptExecutor js = (JavascriptExecutor) driver;
driver.get("https://jpg2png.com");
driver.manage().window().maximize();
js.executeScript("window.scroll(0,100)");
WebElement Pic=driver.findElement(By.id("pick-files"));
String js1 = "arguments[0].style.height='auto'; arguments[0].style.visibility='visible';";
Pic.sendKeys("D:\\University Work\\6th Semester\\IAP\\outline.jpg");
Thread.sleep(10000);
driver.quit();
}
}
The browser open website also open but uploading doesn't happen. type="file" is also not there in html code.
The Exception is:
Exception in thread "main" org.openqa.selenium.ElementNotInteractableException: element not interactable
try to click on upload button. As of now you enter a path to a file you want to upload but not clicking upload button
I'm trying to write a piece of code using Testng in selenium, the problem is when i try to click a link, the code becomes unresponsive and gives error- Timed out receiving message from renderer
Tried driver.get("https://infostore.saiglobal.com/") instead of driver.findElement(By.linkText("Infostore")).click(); still remains unresponsive - Doesnot get directed to the webpage - https://infostore.saiglobal.com/
#Test
public void testSai() throws Exception {
driver.get("https://www.saiglobal.com/"); //open homepage
driver.findElement(By.id("CybotCookiebotDialogBodyButtonAccept")).click(); //accept cookie
driver.findElement(By.cssSelector("#sai-header > div > div.main-nav > div.store-box > div")).click(); //click on Login to open list
sleep(2);
driver.findElement(By.linkText("Infostore")).click(); //click on infostore to be redirected to https://infostore.saiglobal.com/
System.out.println(driver.getCurrentUrl());
Yes I have checked this issue and there is an workaround for this issue if you wish to have this.Try following code.
Take the href attribute value from the link element.
Delete all cookies.
driver.navigate().to(URL);
public static void main(String[] args){
System.setProperty("webdriver.chrome.driver", System.getProperty("user.dir") + File.separator + "\\Executables\\Chromedriver.exe");
WebDriver driver = new ChromeDriver();
WebDriverWait wait = new WebDriverWait(driver, 5);
Actions actions = new Actions(driver);
driver.get("https://www.saiglobal.com/");
driver.findElement(By.id("CybotCookiebotDialogBodyButtonAccept")).click();
WebElement element=wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//div[#class='desktop-login']")));
actions.moveToElement(element).build().perform();
WebElement element1=wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//div[#class='desktop-login']/ul/li/a[contains(text(),'Infostore')]")));
String str1=element1.getAttribute("href");
driver.manage().deleteAllCookies();
driver.navigate().to(str1);
System.out.println(driver.getCurrentUrl());
}
This seems to be an error with Selenium that the developers have been dealing with for over a year. They never really give a concrete answer as to what causes it or how to fix it.
The first port of call would be to make sure that your browser and Selenium are compatible. Try opening a different URL that you know works, and if the error persists then there is likely an error with the compatibility of your selenium and web browser. If it works, then there is something wrong with your website.
For reference, I opened your website using Python Selenium, and had no issues loading or interacting with elements. So the error is local to the software you are using.
The issue can also be caused by sleeps(no idea why), so try removing any sleeps and see if this stops the issue.
I tried to use ChromeDrive but getting error or not excuted well.
My simple java code for testing was:
#Test
public void testGoogleSearch() {
System.setProperty("webdriver.chrome.driver", "lib\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("http://www.google.com/xhtml");
Thread.sleep(5000); // Let the user actually see something!
WebElement searchBox = driver.findElement(By.name("q"));
searchBox.sendKeys("ChromeDriver");
searchBox.submit();
Thread.sleep(5000); // Let the user actually see something!
driver.quit();
}
Following this tutorial:
https://sites.google.com/a/chromium.org/chromedriver/getting-started
SOLVED
I need to update the ChromeDrive and replace the previous one.
Under my project directory /lib
Download here: https://sites.google.com/a/chromium.org/chromedriver/downloads
yes, i suggest you can mention like this C:\\Users\\mona\\Downloads\\chromedriver_win32\\chromedriver.exe
I want to work with google chrome. I am using the following code to instantiate google chrome driver object. But, when I click "System." and doing ctrl+space for suggestions, its showing "No Default Proposals".
and when writing the full code, it's showing error. See picture.
There is no issue with the chrome driver. The problem is you're trying to use it under the class level and not inside a method
Place the code inside any method and you will not get any errors.
I guess you are missing the annotations/method here
something like this
public class Chromedriver{
WebDriver driver;
#BeforeClass
public void setup() {
System.setProperty("webdriver.chrome.driver", "Path to chrome driver");
driver=new ChromeDriver();
driver.get("https://accounts.google.com/");
}
Or call the above in main method or a seperate method. Please make sure all the imports are done.
Cheers!!!
You need to import the Chrome driver class as well for using selenium with Chrome.
Please try this code
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class Tester {
private static WebDriver driver = null;
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver", "path to chrome driver");
driver = new ChromeDriver();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.get("http://www.example.com");
driver.quit();
}
}
I'm very new to selenium so I'm having trouble spotting the problem with my code. I'm using a webDriver backed selenium object, it starts the driver but never opens the URL and the driver just closes after a few moments. The last time this happened to me it was just because I had left "http" out of the URL. So what's causing it this time?
public void testImages() throws Exception {
Selenium selenium = new WebDriverBackedSelenium(driver, "http://www.testsite.com/login");
System.out.println(selenium.getXpathCount("//img"));
}
The setup looks like:
public void setUp() throws Exception {
System.setProperty("webdriver.chrome.driver", "C:\\Users\\User1\\Desktop\\chromedriver_win_16.0.902.0\\chromedriver.exe");
driver = new ChromeDriver();
Thread.sleep(2000);
}
The teardown method just consists of driver.close().
I'm using selenium 2.14 and the testNG Eclipse plug-in.
You might need to do the following
selenium.open("www.testsite.com/login");
Check out this example from the selenium site:
// You may use any WebDriver implementation. Firefox is used here as an example
WebDriver driver = new FirefoxDriver();
// A "base url", used by selenium to resolve relative URLs
String baseUrl = "http://www.google.com";
// Create the Selenium implementation
Selenium selenium = new WebDriverBackedSelenium(driver, baseUrl);
// Perform actions with selenium
selenium.open("http://www.google.com");
selenium.type("name=q", "cheese");
selenium.click("name=btnG");
// Get the underlying WebDriver implementation back. This will refer to the
// same WebDriver instance as the "driver" variable above.
WebDriver driverInstance = ((WebDriverBackedSelenium) selenium).getUnderlyingWebDriver();
//Finally, close the browser. Call stop on the WebDriverBackedSelenium instance
//instead of calling driver.quit(). Otherwise, the JVM will continue running after
//the browser has been closed.
selenium.stop();
link to selenium
You would need to add driver.get(url) like below.
public void setUp() throws Exception {
System.setProperty("webdriver.chrome.driver", "C:\\Users\\User1\\Desktop\\chromedriver_win_16.0.902.0\\chromedriver.exe");
driver = new ChromeDriver();
driver.get("http://www.testsite.com/login");
}