Selenium

Selenium is a portable software testing framework for web applications. Selenium provides a record/playback tool for authoring tests without learning a test scripting language (Selenium IDE). It also provides a test domain-specific language (Selenese) to write tests in a number of popular programming languages, including C#, Groovy, Java, Perl, PHP, Python, Ruby and Scala. The tests can then be run against most modern web browsers. Selenium deploys on Windows, Linux, and OS X platforms. It is open-source software, released under the Apache 2.0 license, and can be downloaded and used without charge.

Share tech news, updates, or what's on your mind.

Sign up to Post

Hi Team,

Have been using C#, Visual Studio 2015, POM architecture. Problem is: sometimes tests passes and sometimes tests gets failed. So far what I tried is increased the explicit time but efforts so far in vain.

Also searched over the net and found that need to use webdriverwait which looks is missing as I am unable to use that. as the message says 'OpenQA.Selenium.Support.UI Namespace does not contain WebDriverWait class'.

Pleas help.
0
Answering your cyber security questions
Answering your cyber security questions

It’s in the news. It’s the job title of the main character on every other tech thriller on TV and in the movies. It’s the hot topic in business boardrooms, university classrooms, and just about everywhere else. But what is cyber security, and how do you get a job in it?

I am trying to understand how to test a very simple web page generated by Polymer (a Javascript Framework).

The task is really simple and I need to use Selenium Webdriver with Javascript to write the username in username input field, the password in the password field and click on login button.

Problem is that in the generated html code I see several nested shadowRoot sections.

I am able to get to the 1st shadowRoot using:
var myApp = document.getElementsByTagName("my-app");

But every element I try to select after that returns just undefined (using css or other methods).

If I inspect the element I see (I've clearly simplified the code for readability):
<my-app>
#shadow-root
	<my-app-login>
	#shadow-root
		<my-app-layout>
		#shadow-root
			<my-app-card>
			#shadow-root
				<my-app-form>
				<form>
					<input required id="password">
				</form>
				</my-app-form>
			</my-app-card>
		</my-app-layout>
	</my-app-login>
</my-app>

Open in new window


How should I proceed to complete this task?

Any pointer is very welcome and appreciated.
0
Hello there,

I am moving to Javascript.

In the past I was using Selenium with Python to test web applications.

In order not to waste precious time and effort I would be pleased to get your input about which are the standard tools used in the Javascript world to do frontend (and, not so important for now, backend).

Is there any specific framework or tool that you use or suggest?

The specific application I need to test is made with Polymer, if that can be of help.

Thanks!
0
I am running a cucumber test suite using Jenkins

I am finding that if my test suite launches in multiple servers concurrently that test on server A may cause test on server B to fail because it’s changing database settings that should be blocked from modification until a given test has finished running

Is there a way to lock resources or block tests from running until it’s their turn to enter the critical zone to avoid this conflict?

Any assistance appreciated
0
Using selenium i should be able to validate data that is populated in a web table which is generated using Div's, it is basically a React table

I am a beginner in Selenium

here is the Html code for the web table generated, the divs are 4 level nested and at the last level it has got 3 child div's

Please see the attachment for how the table looks like

Collapsed HTML Code  

   

<div class="content">
    <div style="width: 100%; min-width: 1094px;">
        <div class="ReactTable -highlight">
            <div class="rt-table" role="grid">
                  <div class="rt-thead -headerGroups" style="min-width: 700px;">
                       ....
                 </div>
                 <div class="rt-thead -header" style="min-width: 700px;">
                      ...
                </div>
               <div class="rt-tbody" style="min-width: 700px;">
                     ......
               </div>
            </div>
        </div>
    </div>
</div>

Open in new window


Complete expanded code React Table


  

<div class="content">
    <div style="width: 100%; min-width: 1094px;">
        <div class="ReactTable -highlight">
            <div class="rt-table" role="grid">
                <div class="rt-thead -headerGroups" style="min-width: 700px;">
                    <div class="rt-tr" role="row">
                        <div class="rt-th" role="columnheader" tabindex="-1" style="flex: 200 0 auto; width: 200px;"></div>
           

Open in new window

0
Hi Team,

I am trying to implement the selenium headless browser test using the phantom js.
Here am able to connect to the endpoint and able to fill the login details but getting the error message after clicking on the submit button.
Error Message:- This part of the site is not reachable.

Am able to do the above operation using the firefox driver and all other web drivers expect headless browsers.

Selenium-java version:- 3.7.1
Phantom Js driver:- 2.1.1
Phantom js pom version:- 1.4.0

Can any help me to solbve this issue.
0
I am new to Automation testing, i have to write automation scripts for File Router service, this service has a source/input folder and a destination folder, based on the file name, extension the file(s) will be moved to respective destination.

This is a windows service. based on the configuration this router will move the files

What will be better technology stack for this requirement, when i run the tests , they should be able to copy, verify whether it is copied or not
0
Hey all I am using RFT in order to automate a page on a Pega website page. However, the automation doesn't seem to be able to fire off the change event of the input that I am inserting a string of text into. This input box seems to be located inside an iframe and perhaps this is the reason why its not firing the onchange event when losing focus on that input box?

RFT does use Selenium in their program to interact with the web page.

The html of the input box:

<input 
    data-id="204083727717650" 
    data-ctl="["TextInput"]" 
    id="BBOX" 
    maxlength="15" 
    validationtype="required" 
    value="" 
    name="$PpyWorkPage$pBBOX$pBBOX" 
    class="leftJustifyStyle" 
    data-change="[["refresh", 
                   ["otherSection",
                    "RecordInformation", 
                    "", 
                    "&amp;=", 
                    "", 
                    "BBOXOnChange,",
                    ":event",
                    "",
                    "pyWorkPage.BBOX"
                   ]
                 ]]" 
    type="text">

Open in new window


The Selenium code I have tried is this:

driver.switchTo().frame(driver.findElement(By.name("PegaGadget")));     

WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("BBOX")));
final WebElement BBOXInputBox = driver.findElement(By.id("BBOX"));

BBOXInputBox.click();
BBOXInputBox.click();
Thread.sleep(2000);
BBOXInputBox.sendKeys("204083727717650");
Thread.sleep(2000);
BBOXInputBox.sendKeys(Keys.TAB);
Thread.sleep(2000);
BBOXInputBox.sendKeys(Keys.BACK_SPACE);
Thread.sleep(2000);
BBOXInputBox.sendKeys("1");
Thread.sleep(200);
BBOXInputBox.sendKeys(Keys.TAB);
Thread.sleep(2000);

Actions builder = new Actions(driver);
builder.moveToElement(driver.findElement(By.id("FirstName_U")), 5, 5).click().build().perform();

driver.findElement(By.id("FirstName_U")).sendKeys("something");

Open in new window


And I am trying my best to find this function above in their 30 or so of .js files for any one page.

So someone more knowledgeable than I in the area of this type of coding in JS please set up and let me know what I should be looking for in the .js source code so that I can fire this change event manually within code.

It seems when I click on the text box, input a few letters and then either tab or click on another input box on that same form it fires some type of event/function that populates a label on the page.

What I have been looking for within the .js source code would be a function called refresh(...) or something along the lines of refresh: function(...)... or _refresh: function(...)... but I haven't been able to find anything that resembles the parameters its sending to that function.
0
Hellow,

Kindly guide me for control v keys (paste) for selenium web driver for Chrome i use following Combinations and Searched Over Internet Various Ways but vain.
sendkeys keys.control + "v"
sendkeys Keys.control&"v"
sendkeys Keys.control,"v"

I use VBA Excel to Excute copy a range from sheet to paste into web.whatsapp.com a contact everything working but control + v paste not working.

Regards,
0
After installing Selenium IDE in Windows 10, the system is getting Auto-off !
0
OWASP: Threats Fundamentals
LVL 13
OWASP: Threats Fundamentals

Learn the top ten threats that are present in modern web-application development and how to protect your business from them.

I have wrote a python script to open arround 1k urls and process them to get the desired result,but it seems like eventhough multithreading has been introduced its working slowly, and after some urls have been processed,the process seems to be hanged, I am not able to decide whether its still running or stopped.How can I create multiple threads to process them faster.Any help will be highly appreciated.Thanks in Advance. Below is my script.

import threading
from multiprocessing.pool import ThreadPool
from selenium import webdriver
from selenium.webdriver.phantomjs.service import Service
from selenium.webdriver.common.desired_capabilities import
DesiredCapabilities
from selenium.webdriver.remote.webdriver import WebDriver as
RemoteWebDriver
from multiprocessing.dummy import Pool  # This is a thread-based Pool
from multiprocessing import cpu_count
import csv

def fetch_url(url):
    driver = webdriver.PhantomJS()
    driver.get(url)
    html = driver.page_source
    print(html)
    print("'%s\' fetched in %ss" % (url[0], (time.time() - start)))

def thread_task(lock,data_set):
    lock.acquire()
    fetch_url(url)
    lock.release()

if __name__ == "__main__":
    data_set = []
    with open('file.csv', 'r') as csvfile:
        spamreader = csv.reader(csvfile, delimiter=' ', quotechar='|')
        for row in spamreader:
            data_set.append(row)

    lock = threading.Lock()
    # data set will contain a list of 1k urls
    for url in…
0
I want to automate a task. in a website we give the details in the fields (like 10 fields information need to fill) and click on submit and in the next page we need to confirm and proceed. Depending on the result whether it is success or not, capture the result and send via email or put the result in a different website and save the result in that website.

Also this process of checking information in site1 by giving information in fields and saving it in a different website need to be done at a scheduled time daily or on days we select to run this job.

I want to know to achieve this task, which method/tools can be used with using robust tools that does not require licensing requirement. Please guide me how to proceed with this task.
0
from selenium import webdriver
dr=webdriver.Chrome()
dr.get('https://www.google.com')
text=str('good day ')
dr.execute_script("document.getElementById('lst-ib').setAttribute('value','"+text+"')")


This works fine , but when i use xpath
dr.execute_script("document.getElementByXPath('//*[@id='lst-ib']').setAttribute('value','"+text+"')")

I am getting Error . Kindly anyone help me with this
0
Hi there!

I have an issue preparing an installation of Python/IDLE in one of my client's team computers. Basically, I prepared a couple of scrappers using Python and Selenium. The packages being used on my scripts are selenium, openpyxl, and python-docx.
However, I can't even get to installing the packages on that machine, because one I execute the Python installer from the website (3.6.x), the insteller won't. I tried using admin rights, disabling antivirus, I checked the correct processor architecture, and I still can't get to run the installer on that particular machine. In other team members I was able to installe in their machines. I have run out of ideas to trouble shoot this. Could you please point me to things that I can try out to run the installer Python/IDLE installer?

Thank you so much!
Any help is greatly appreciate it.
0
Hi,

This about automating the Application verification.

As part of testing we are verifying some online application every day and seeing the response at the end and confirming that the application working as expected.

Cant we automate this process. If we did that it will reduce 30 mints of our time. Also if this can be done from the UFT tool also fine for me. we dont have selenium in our machine and it is not allowed. Please share your thougths and suggestions if any.
0
What are steps to install selenium automation in robot framework in ubuntu 16.04 in python?
0
I am using Log4j2 with the JUL plug-in.

For example:
	... 18 more
1500642924477	Marionette	INFO	New connections will no longer be accepted
1500642924501	addons.xpi	DEBUG	Calling bootstrap method shutdown on webcompat@mozilla.org version 1.1

Open in new window

0
We are using ELK(Elastic search, logstash, and Kibana) for our log management. Everytime I will export the setting from kibana UI from Management--->Save Objects--->Export Everything. For demo, one can checkout the url: Kibana Demo

cURL
I want to automate this export process with some scripting on linux. I tried CURL but the header/payload data looks to be dynamic and might have to update frequently. I want to try some web scraping techniques with some web automation tools like Selenium and pythion.

Selenium Webdriver
I tried to record this export action with Selenium IDE and from the IDE I exported the test plan/case into pythonkibana_python.py . As we click on Export Everything button on Kibana, a firefox window opens asking where to save. This action is not handled by selenium, meaning download file is not supported by selenium.

So, I'm looking for some scripting to export the json(Export Everything) file from Kibana UI and it mush be Headless as I would be scheduling this script in linux server. To be headless, I also tried phantomjs, but even this doesn't support file download.

Simply, I just want a script to automate clicking export everything button on kibana and want it be saved in a file. Please share your thoughts or any idea,  i'm trying this for days...
0
HI Expert

In my application a button click must open a page ( inside a frame) , manually the chrome browser loads the page withing  1 minute
but same action does not happen with the Selenium Web Driver Script ( button is clicked , but the page inside the frame does not load)

page loading will be  in progress infinitely,

Please suggest the workaround

I am using chrome version : 58.0.3029.110 (64-bit)
chrome driver version         : 2.29

Regards
Sai
0
public class test {

      
public static void main(String[] args) throws AWTException, IOException, InterruptedException {
      
      
       WebDriver driver;
       System.setProperty("webdriver.ie.driver","**");
            driver=new InternetExplorerDriver();
      
      


      driver.get("**");
      driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);

       WebDriverWait waiting = new WebDriverWait(driver, 10);
            waiting.until(ExpectedConditions.presenceOfElementLocated(By.id("**")));
      driver.manage().window().maximize();
      
      driver.findElement(By.id("**")).click();
      
      driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);


      

      

      
      try {
             Robot robot = new Robot();
             robot.keyPress(KeyEvent.VK_F6);
      
             robot.keyRelease(KeyEvent.VK_F6);
            
             robot.keyPress(KeyEvent.VK_ENTER);
             robot.keyRelease(KeyEvent.VK_ENTER);
            
                 } catch (AWTException e) {
                    e.printStackTrace();
                  }
      

}

}

The requirement is:
open a webpage
Click on the excel icon to download the file.
then a popup appears.
upon clicking on F6 and enter the file gets saved.
the problem here is as soon the code is run, the robot class does not wait for the icon to be clicked. the steps are not occurring in sequence.
0
Scenario 1:
I have the below method which is common to 3 web elements. I am trying to create a common method in which I can pass any of the 3 web elements as needed so that the method is invoked.

public String clickMethod() throws InterruptedException {
    WebElement link = currentPage.findElement(By.xpath("......')]"));
    String href= link.getAttribute("href");
    return href;
}

I am not sure how to pass webelement as parameter and call in the Testcase. I use pageobject model. the webelement is in the page class and i am trying to call the method and assert in test class.

Scenario 2:
In another case I need to pass 2 web elements and run the same method.

My code is like the one below:

public boolean VerifyResultsAndSelect() throws InterruptedException {
    Webelement1.sendKeys("asdf");
    List<WebElement> selectlist = currentPage.findElements(By.cssSelector("....."));
    System.out.println(selectlist.size());
    if (selectlist.size() == 3) {
        selectlist.get(0).click();
        System.out.println(currentPage.getCurrentUrl());
    }

    return true;
}

i am not sure how to pass 2 webelements as parameters  and call in the Testcase. I use pageobject model. the webelement is in the page class and i am trying to call the method and assert in test class.
0

Selenium

Selenium is a portable software testing framework for web applications. Selenium provides a record/playback tool for authoring tests without learning a test scripting language (Selenium IDE). It also provides a test domain-specific language (Selenese) to write tests in a number of popular programming languages, including C#, Groovy, Java, Perl, PHP, Python, Ruby and Scala. The tests can then be run against most modern web browsers. Selenium deploys on Windows, Linux, and OS X platforms. It is open-source software, released under the Apache 2.0 license, and can be downloaded and used without charge.

Top Experts In
Selenium
<
Monthly
>