Filed under Selenium WebDriver, Test Automation, UI Testing.

Here is how you can find all the Links on a Webpage with Selenium WebDriver in Java.

All you need to do is to create a list of all WebElements, and then iterate thorough the list of links to print the link and the text of the link:

List allLinks = driver.findElements(By.tagName("a"));

System.out.println("All links found on web page are: " + allLinks.size() + " links");

for (WebElement link : allLinks) {

//print the links i.e. or

//print the links text

To get the link you can call the “getAttribute” method on the link WebElement passing “href” as its argument which will print the links as i.e. or

Use our older post in order to understand how you can find WebElements on a webpage with Selenium WebDriver.

In order to click on each link element and the go back you can use the following WebDriver code:

for (WebElement link : allLinks) {;
} is a cloud testing platform:

Filed under Load Testing.

Reasons for 500 Internal Server Errors when doing GET or POST requests


How did we find out about these strange 500 Internal Server errors?

A few of our customers were getting sometimes strange 500 Internal Server errors when running load tests against their application even though when they were trying to make the GET or POST request from the browser it was working without a problem.

We decided to give them a hand finding why this might happen. The answer to the puzzle is quite simple but unless you know about the problem it might take a few hours to get to the bottom of the it.

The problem is that many web applications by default do not take into consideration the fact that some of the following headers might not be present in the client requests:

Accept-Encoding:gzip, deflate, sdch, br
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36

Why a lot of web applications do not consider the need to check that these headers are really sent in the user request ?

The answer is very simple, because all the browsers by default add these headers to all the requests.


What did we decide to implement in the LoadFocus platform to help our customers ?

For helping our customers we decided to add the possibility for the user to get all those headers added to their requests by only clicking one button.

Also we decided to add a few hints that will be displayed on the result page in case the requests return 500 Internal Server error.

Filed under Automated Website Testing & Monitoring, Selenium WebDriver, UI Testing.

We are going to present how you can mouseover an web element using Selenium WebDriver. The code below is straight forward:

  • first we identify the element to be hovered in the web page, here is how you can find web elements using Selenium WebDriver.
  • hover (mouseover) functionality is provided in Selenium WebDriver with the help of the Actions class, which provides the ability to move the mouse over an element.
WebElement web_Element_To_Be_Hovered = webDriver.findElement(By.cssSelector(selector_For_Web_Element_To_Be_Hovered));
Actions builder = new Actions(getDriver());

The build() method generates a composite action containing all actions so far, ready to be performed (and resets the internal builder state, so subsequent calls to build() will contain fresh sequences).

Also, if we want to click a web element after hovering the first element, we can do that by waiting for the element to be clickable, in order to interact with it.

WebDriverWait wait = new WebDriverWait(driver, 5);

The most important part is identifying the element right after the first web element was hovered (mouseover), otherwise we’ll get an exception that the element is not available.

Basically, you use the Actions to hover and the standard WebDriver method click, this way you could hover and then click.


Selenium WebDriver provides multiple options to interact with web elements with the Actions class. In our case, for mouseover (hover) functionality we can use the following 3 methods:

  1. moveToElement(WebElement toElement)
    • Moves the mouse to an offset from the top-left corner of the element
  2. moveToElement(WebElement toElement, int xOffset, int yOffset)
    • Moves the mouse from its current position (or 0,0) by the given offset. If the coordinates provided are outside the viewport (the mouse will end up outside the browser window) then the viewport is scrolled to match.
  3. moveByOffset(int xOffset, int yOffset)
    • Performs a context-click at middle of the given element. First performs a mouseMove to the location of the element.


More details related to Selenium WebDriver are available in the Video Course on How to Select a Dropdown in Selenium WebDriver.

With you can easily automate the repetitive manual testing of your site, schedule your automated tests to run from cloud instances at scheduled times.
We’ll notify you if something goes wrong on Slack or by Email. View detailed test reports with screenshots and videos of the bug in action


Filed under Cloud Services, Test Automation.

We’ve created a video to present an overview of LoadFocus services offered:

Please see below the full video. is a All-In-One Cloud Testing Platform for Load Testing and Performance Testing, Website Speed Testing, Automated Website Testing and Mobile Emulation for Websites, Mobile Applications and API Endpoints.

Filed under Mobile Apps Testing, Page Load Time, Website Speed Testing.

We’re happy to announce that our website speed testing service can now run tests with the network throttled. This comes as a feedback of the new service poll we’ve created and we’d like to thank you for the responses.

Basically you can see how your pages load in different network conditions GPRS, 2G, 3G, 4G, WiFi and others, you just need to select the throttling option to apply network throttling and latency manipulation.


Network Bandwidth Throttling will help you make your site look great and load fast on any device. Use tools to identify and fix common problems that occur when the browser renders elements on the page.


It’s easy to overlook the network conditions your users will face on mobile. This is very useful if you want to see how your page responds and unfolds under varied internet speeds.

speed-test-bandwidth-throttled-result is a All-In-One Cloud Testing Platform for Load Testing and Performance Testing, Website Speed Testing, Automated Website Testing and Mobile Emulation for Websites, Mobile Applications and API Endpoints.

Filed under Automated Website Testing & Monitoring, Cloud Services, Mobile Testing.

Here is a list of some of the most important 6 things that you, as a business owner, need to know about your website. is a All-In-One Cloud Testing Platform for Load Testing and Performance Testing, Website Speed Testing, Automated Website Testing and Mobile Emulation for Websites, Mobile Applications and API Endpoints.

Filed under Cloud Services.

We’d like to try something new here and ask you for feedback. Your input is very important to us in order to understand which are the needs of our customers.

We want to create a new service which will be part of our plans, and to do this we’ve created a pool.

Here are some of the options we have in mind:

  • Load Testing using Apache JMeter files
  • SEO testing service
  • Page Load Testing with mobile emulated bandwidth
  • Others

If you could take no more than 30 seconds and select new LoadFocus services, I’d really appreciate it.



P.S. Here’s the link again: