This is a general question, while troubleshooting automation scripts ,
I had seen that , in webdriver's chrome browser only some of the network calls are not triggering properly after corresponding successful click events.
One thing I could assume is that since webdriver running on a fresh instance , this could occur.
From your experience, if you had faced this , please tell me what were the reasons .
For this specific scenario based on the analysis, some of the responses are not triggered in webdriver browser instance and chrome's incognito . It's an issue in the application itself .
Until my google Chrome wasn't updated to version 78 my code worked fine. I also updated the chromedriver to version 78.0.3904.70. So I am not able anymore to find WebElement with id='plugin' using Selenium WebDriver and Java:
<html>
<div id="content">
<embed id="plugin" type="application/x-google-chrome-pdf" src="http://??????????/offer_printed.php?printable=yes&reanudar=&>
</div>
</html>
Other than that part my tests are working fine. I never had a similar issue before. I also tried to find WebElement id='content' but I am receiving the same error.
WebDriverWait wait = new WebDriverWait (driver, 90);
WebElement scrollvalid = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("plugin")));
scrollvalid.sendKeys(Keys.PAGE_DOWN); scrollvalid.sendKeys(Keys.PAGE_DOWN);
My automation script should find the PDF element and scroll the page down. Instead, I am receiving this error:
org.openqa.selenium.TimeoutException: Timed out after 90 seconds waiting for visibility of element located by By.id: plugin
Is anybody facing a similar issue? Thanks in advance.
I've run into the same issue.
Apparently Chrome automatically updates itself. Yesterday (Oct 29 '19) My ChromeDriver started complaining that it was not compatible with Chrome 78. I updated the driver to the 78 version. I started to get random org.openqa.selenium.NoSuchElementException exceptions when trying to find elements that I confirmed were there. The findElement[s] also work when I used breakpoints. I also tried implicit waits, with only limited success.
I tried zsbappa's ChromeOption solution but no joy.
Google makes it hard to get old versions of Chrome, but I found version 76 at https://www.neowin.net/news/google-chrome-76-offline-installer/. Beware, the online installer installs the latest version. I reverted to the driver for 76 and all is good. All my Selenium tests are working again.
My conclusion is that the Chrome 78 and it's associated driver has a race condition where Selenium attempts to interrogate the web page before it's complete.
We have faced a similar issue with Chrome 78.0.3904.7, Chromedriver 77/78, Python Selenium 3.141.0.
In our automated Python Selenium tests, we've seen multiple failures where it appears that clicks on elements have not occurred. Even stranger, it appears that the element has become active (as if it were about to be clicked) but the the actual click event never occurred. As a result, page switches etc do not occur resulting in various downstream failures.
By a process of trail and error, we found that using the standard .click() function is now not reliable:
webdriver_element.click()
But using Action Chains does appears to be reliable:
ActionChains(context.browser).click(webdriver_element).perform()
It's not clear why this is the case. The failures began as soon as we upgraded to Chrome 78.0.3904.7. We're using Chromedriver 77.0.3865.90 but the same tests pass reliably on Chrome 77.x versions therefore it appears something is wrong or has changed in Chrome 78.
By adding the following argument I have solved my problem.
ChromeOptions options = new ChromeOptions();
options.addArguments("--disable-gpu");
options.addArguments("--disable-extensions");
options.setExperimentalOption("useAutomationExtension", false);
options.addArguments("--window-size=1920,1080");
options.merge(seleniumCapabilities);
driver = new ChromeDriver(options);
I have faced the same issue when trying to access a tab inside an iframe , it used to work fine on version 76. Now that has updated itself to 78, it's failing.
Have tried waits , implicit waits , sleep , locate the elements using xpath, CSS, id , switch context , scroll until view , etc.., with no luck.
I'm using windows 10 , 1809. I don't know if this is happening in other OS.
Here is the question I raised :
Problem using chromedriver 78.0.3904.70 locators
I confirmed yesterday that this issue appears to manifest itself only when an element is contained in an iframe. In those cases, the iframe is located fine. However, attempting to locate a web element using the driver or web driver wait objects will result in a NoSuchElement or TimeoutException respectively.
I provided the chromedriver team a verbose chrome driver log and they are working on it.
UPDATE:
From chromedriver issue 3223
The logs show that the final executionContextCreated for the frame doesn't complete until after the FindElement returns null.
Starting in version 77, ChromeDriver stopped waiting for all frames to load before continuing navigation. Unfortunately, that change prevented a wait for the current frame to load. 3164 will all a wait for the current frame to load; this should prevent FindElement from searching until after the frame has Stopped loading and the executionContext is created.
Basically, this bug was introduced in v.77. Many of us just noticed this problem because we upgraded from v.76 to .v78. Word is that they are targeting a fix for .v80 (not v. 79). As a workaround, I am using Thread.sleep between the time I switch to the iframe and when I attempt to locate the component. This workaround works fine. In fact, you can verify this on your own by simply running your application in DEBUG mode. When you pause execution (by using a breakpoint), you'll notice that your original code (without the sleep) works fine.
For example: You can try using this keywords!.
1. implicit_wait=10
2. Sleep 10
It turned out to be a problem with the Google Chrome, not chromedriver: https://bugs.chromium.org/p/chromedriver/issues/detail?id=3211
I had the same issue.
After auto-updating Chrome with version 78.0, my automated test scripts were failing. So I updated chromedriver to the 78 version, but driver was still not able to find any web element. After that I tried with multiple versions of chromedriver and finally my issue is resolved with chromedriver version 2.44.
This version can be found at https://chromedriver.storage.googleapis.com/index.html?path=2.44/
You can Nuget package manager, delete Chrome drive and search for chrome, download the new version selenium.web.driver.ChromeDriver >> for jsaKamoto
there you find chrome version 78.
I been trying to solve this issue but not sure what's the cause for this,
i made a program with java and phantomjs, and in theory they both should behave the same way.
Phantomjs in both the pc and the server is the same v.2.0.
In windows(v.7) mi testing program works as expected, but in linux (debian) the program fails, with this error when it tries to click an element:
Caused by: org.openqa.selenium.NoSuchElementException: {"errorMessage":"Unable to find element with css selector
Now, i know sometimes we have to wait for few seconds for the page to load, which already do (even added a few more just to be sure) and it was tested correctly in windows.
i tried with the click function:
element.click();
with a javascript code:
JavascriptExecutor js = (JavascriptExecutor)driver;
js = (JavascriptExecutor)driver;
js.executeScript("arguments[0].click();", element)
and with actions too:
Actions action = new Actions(driver);
action.moveToElement(element).contextClick().build().perform();
//and this code too
action.moveToElement(element).click().build().perform();
Anyone had this same or similar issue? what i else i can do? i'm stuck since yesterday and i wan't able to figure out this problem.
note: for now i have an alternate way to get page without having interaction, but still having different results from the web page when executing in different OS, for example:
where i normally i get this link: www.somesite.com/?search=xxxxx&date_in=dd/MM/yyyy¶ms=etc. , instead i get www.somesite.com/?search=xxxxx, the default search without any especific search parameters.
You need to use onResourceError callback, to find out what's going wrong.
You also need to use the following Command-Line options:
--ignore-ssl-errors=true --ssl-protocol=any --debug=true
See also: this issue.
I have such problem. My tests successfully passed in IDEA, but Jenkins fails them and such error message appears in build log: "Timed out after 100 seconds waiting for presence of element located by: By.xpath: .//div[3]//div[4]//a" This element located in the bottom of the page, but in IDEA I have no problems with locating and interaction with it and webdriver automatically scrolls down to it. So, I've tried to replace this selector, I've tried to increase wait of this element, but I still get this error message appeared in build log. Have anybody experienced in this issue?!
I have faced similar issues many times when I run my scripts through Jenkins on remote sandbox machine. What I did was just before the script would locate for that element, I have put 5 seconds of Explicit Wait to check if the problem lies with DOM Problem(UI is loaded but background functionality still in progress of loading). Fortunately, mine worked. Hope it helps in your case. If you can provide some sample code, I may help more than this :)
I have got the following code working on Firefox, but not on Chrome.
Select selectSize = new Select(dropDownListBox);
selectSize.selectByIndex(1);
I've tried using explicit wait and Thread.sleep(), but couldn't make it work.
When I debug the code, I found out that it actually grabs the value, but doesn't update the UI.
When I use System.out.println(selectSize.getFirstSelectedOption().getText()); it actually prints the size.
I've also tried running this code on iPhone and iPad emulators and it worked on there as well. I feel like this only doesn't work with Chrome Driver.
Has anyone had this issue before or do you have any suggestions?
Update: I'm using Selenium 2.41.0 and Chrome WebDriver 2.9.
Thanks in advance