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

I want to extract contact information related to real estate companies from the following link: https://www.metrocuadrado.com/directorio-inmobiliarias/bogota/
The link has pagination, so I included in my code automated clicks to access pages no. 2 and page no. 3 from the link provided since it is not possible from the URL (the URL is the same regardless of the page no).

nombre_path = "//*[@class='col-xs-6 nombre-inmobil']/h2[1]"
ciudad_path = "//*[@class='col-xs-6 nombre-inmobil']/span[1]"
direccion_path = "//*[@class='col-xs-12']/ul/li[1]/span[1]"
telefono_path = "//*[@class='col-xs-12']/ul/li[2]/span[1]"
email_path = "//*[@class='col-xs-12']/ul/li[3]/span[1]"
link_path = "//*[@class='col-xs-12']/a[1]"

nombre = []
ciudad = []
direccion = []
telefono = []
email = []
link = []

driver = webdriver.Chrome('/Users/racho/Documents/chromedriver')
driver.implicitly_wait(30)

url = 'https://www.metrocuadrado.com/directorio-inmobiliarias/bogota/'
driver.get(url)

for i in range(3,5):
    
    page_path = "//*[@class='col-xs-12 col-sm-4 col-md-4 col-lg-4 pager']/a" + str([i])
    
    next_page = driver.find_element_by_xpath(page_path)
    actions = ActionChains(driver)
    actions.move_to_element(next_page)
    actions.click(next_page)
    actions.perform()
 
    el_nombre = driver.find_elements_by_xpath(nombre_path)
    nombre_ = [element.text for element in el_nombre]
    [nombre.append(x) for x in nombre_]

    el_ciudad = driver.find_elements_by_xpath(ciudad_path)
    

Open in new window

0
Should you be charging more for IT Services?
Should you be charging more for IT Services?

Do you wonder if your IT business is truly profitable or if you should raise your prices? Learn how to calculate your overhead burden using our free interactive tool and use it to determine the right price for your IT services. Start calculating Now!

Hi Team,                    

I am trying to retrieve rows and column values from the HTML scroll table. which works fine but time is taken by is quite high it takes around 1 hr for 270 records or so. In order to get rows which are not visible I need to scroll the table down row by row and then I add row data to List or Array-like given below:

Issue: It takes more than 01 hours of time for 270 rows having seven columns.

List<String> displayNames = new List<string>();
            Actions actions = new Actions(Driver);
 for (int counter = 0; counter < cells.Count; counter++)
	{
		//scroll the table to get all the elements
		actions.MoveToElement(Driver.FindElement(
			By.XPath("//*[@id='tbl1']/tbody/tr[" + (counter + 1) + "]/td[" +
					 colIndex + "]")));
		actions.Perform();
		displayNames.Add(Driver
			.FindElement(By.XPath("//*[@id='tbl1']/tbody/tr[" + (counter + 1) +
								  "]/td[" + colIndex + "]")).Text.Trim());
	}

Open in new window



Is there any other way I could reduce this time?
0
Hi Experts,

how can I handle chrome HTTP basic authentication through selenium in c#. Attaching a screen shot where it is asking for the username n password but selenium does not appears any control over this neither I am able to click on cancel button through selenium.


How could I get rid of this using c# in selenium. Looking forward to hearing from you.
0
Hi experts,

Using;
Selenium, Chrome Browser, C#, nUnit:

My scenario is ::
1. I need to login to my application ( chrome browser), process Test Case.
2. Logout, close browser window
3. Open new chrome window.
4. Re-launch the browser with the same URL
5. Login again with different user6. process test cases
6. Logout.

What I am doing:
When I close browser and launched new URL and tries to login with different credentials I get the below error:

Problem:
Getting this exception:
"invalid session id\n  (Driver info: chromedriver=74.0.3729.6 (255758eccf3d244491b8a1317aa76e1ce10d57e9-refs/branch-heads/3729@{#29}),platform=Windows NT 10.0.17134 x86_64)"

Please help.
0
Hi Team,

I want to select the value 'AMK'  from the drop-down which is nothing but built up of <Div> tags as mentioned in the attached screenshot. What should be the relative Xpath for this from id 'GroupID' ?

appreciate your early response.
DOMStructure.PNG
0
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'.

Please help.
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
In selenium is it possible to know the type of the locator whether it is given in css or xpath or id or name or linktext etc..

the requirement is i get the locator in the form of a string and i have to know whether it is CSS or xpath

By selector = driver.findElement(By.cssSelector(locator));

if(selector == null){

  selector = driver.findElement(By.xpath(locator)); }

Open in new window

as the very first statement throws an exception if it is a different locator, is there an easy way that we can identify the type and handle and type of locator
0
There arent enough of us to do the full testing we should do on new features we build for our website, plus to just make sure things keep on functioning as they should. We need to set up automated testing of all of our website features, like logging in, getting special pricing levels based on who you are, shipping API's functioning as they should, general website functionality etc. Is Selenium a good way to go? If so, can somebody please give me a bullet point list of how to get started and implemented? This is for a large website on LAMP stack. Thanks very much.
0
Selenium IDE

I want to test Firefox Web

1 / Click Event : Selenium Understand it
2 / Right-Click Event : Selenium can't

Anyone knowledge help to solve it

Thank
Nam
Email : phuongnamvu@gmail.com
0
Bootstrap 4: Exploring New Features
LVL 13
Bootstrap 4: Exploring New Features

Learn how to use and navigate the new features included in Bootstrap 4, the most popular HTML, CSS, and JavaScript framework for developing responsive, mobile-first websites.

Experts, I have started working on Selenium and would need your help in finding XPATH of webpage elements in browsers. If there is any tutorial using which I can help find the right xpath to elements using developer tools, it will greatly help. Thanks.

Just to add, I have used the chrome Inspect Element -> XPath option, but would like to know if there are other non-browser tools or plugins which are more friendlier and descriptive.
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, so I give up trying to install the officitial distirbution in that machine. In other machines I don't have this problem.

So I was wondering if you could recommend other Python distributions for windows that can enable me to run my scripts using the mentioned package? I saw some alternatives such as PyCharm, but I am not sure if that will help.

Can someone confident recommend some for this case?

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

I have a somewhat challenging problem.
I just created a simple page object model in Selenium with C#. It has the following structure.


This is HomePage.cs
namespace CostcoTravel_UITest.Pages
{
    public class HomePage: BasePage
    {
        private By VacationPackageMenu = By.Id("nav_vacation_packages");
        private By CruisesMenu = By.Id("nav_cruises");
        private By RentalCarsMenu = By.Id("nav_rental_cars");
        private By HotelsMenu = By.Id("nav_hotels");
        public HomePage(IWebDriver _driver) : base(_driver) { }

        public CruisesPage NavigateToCruisesPage()
        {
            Repository.Driver.FindElement(CruisesMenu);
            return new CruisesPage(_driver);
        }
        public VacationPackagesPage NavigateToVacationPackagePage()
        {
            Repository.Driver.FindElement(VacationPackageMenu);
            return new VacationPackagesPage(_driver);
        }
        public RentalCarsPage NavigateToRentalCarsPage()
        {
            Repository.Driver.FindElement(RentalCarsMenu);
            return new RentalCarsPage(_driver);
        }
        public HotelsPage NavigateToHotelsPage()
        {
            Repository.Driver.FindElement(HotelsMenu);
            return new HotelsPage(_driver);
        }
    }
}

Open in new window

And the following is VacationPackagesPage.cs
namespace CostcoTravel_UITest.Pages
{
    public class VacationPackagesPage: BasePage
    {
        private By HomeMenu = By.Id("nav_home");
        public VacationPackagesPage(IWebDriver _driver) : base(_driver) { }

        public HomePage NavigateToHomePage()
        {
            Repository.Driver.FindElement(HomeMenu);
            return new HomePage(_driver);
        }
    }
}

Open in new window

my UnitTest1.cs class look like this:
[TestClass]
    public class UnitTest1
    {               
        [TestMethod]
        public void TestMethod1()
        {            
            HomePage hp = new HomePage(Repository.Driver);
            hp.NavigateToVacationPackagePage();
        }
    }

Open in new window

I know that this is typical way to create Navigation methods in each class like this.
But With this way, I will have too many  Navigation methods.
so, I would like to create a generalized Navigation method in BasePage class and all other classes can use it.
so in UnitTest1.cs class, I can call it by providing page name.
I would look like this:
public [pageName] NavigateTo(pageName){
       repository.Driver.FindElement(WebElementInPageName);
 return new [PageName](_driver);
}

Open in new window

 
In here pageName is a "destination page"
maybe I should provide "WebElementInPageName" as well?

Then, I can call it in UnitTest.cs class like
HomePage hp = new HomePage(Repository.Driver);
 hp.NavigateTo(VacationPackagePage);

Open in new window

or
hp.NavigateTo(VacationPackagePage, WebElementInPageName);

Open in new window

0
I`m a manual Quality Assurance. I really need an automation in my hard work. How should I good start? Have you any ideas? I use Selenium and C++ at my work. But is a basic C++ enough? I was thinking to go to college to take some C++ credits there. Maybe there something like https://domywriting.com/ which could help me in my work. I`m really lost in it because I don`t have the Computer science degree.
0
How to download the audio file from google meaning using python platform?  

I tried using ffmeg package but it's not working. Any small sample script could help me.


Thanks in Advance!!!
0
Below code was working few days back ago.But suddenly i'm experience this error. I tried implicit,explicit wait, time.sleep but nothing is working out.  I have also verified that element are present.I have checked similar error in stackoverflow , where they have mentioned to use explicit wait. As I mentioned earlier, it's doesn't work. Am I new to selenium , so kindly help me on this issue.

Error code :
driver.find_element_by_xpath("//*[@id='wrapper']/main/div/p[5]/a").click()

Open in new window

Complete code for the  perusal.
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select
import datetime 
import time 
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from bs4 import BeautifulSoup
from IPython.display import clear_output

def select_elements(system,yy,mm,dd,hr,mins,meridiem):
    select = Select(driver.find_element_by_id('fin_compatibility_system'))
    select.select_by_value(system)

    select = Select(driver.find_element_by_id('fin_gyear'))
    select.select_by_value(yy)

    select = Select(driver.find_element_by_id('fin_gmonth'))
    select.select_by_value(mm)

    select = Select(driver.find_element_by_id('fin_gday'))
    select.select_by_value(dd)

    select = Select(driver.find_element_by_id('fin_ghour'))
    select.select_by_value(hr)

Open in new window

0
1. I load the page
2.input some data
3.click on submit button
4.It does the calculation , and result are shown below in the same page.

In-spite of simplicity wait, page_source doesn't have newly loaded content.

My test code:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select
import time 
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from bs4 import BeautifulSoup

driver = webdriver.Chrome('C:\\Users\\Vivekanandhan\\Downloads\\Compressed\\chromedriver_win32\\chromedriver.exe')


driver.get('http://srirangaminfo.com/porutham.php')
#Input Value to the text box
inputElement = driver.find_element_by_id("name2")
inputElement.send_keys('1')

#Select value from the list box 
select = Select(driver.find_element_by_id('fdd2'))
select.select_by_value('4')

select = Select(driver.find_element_by_id('fmm2'))
select.select_by_value('6')

select = Select(driver.find_element_by_id('fyy2'))
select.select_by_value('1986')

select = Select(driver.find_element_by_id('fhr2'))
select.select_by_value('1')

select = Select(driver.find_element_by_id('fmin2'))
select.select_by_value('49')

select = Select(driver.find_element_by_id('fsec2'))
select.select_by_value('0')

select = Select(driver.find_element_by_id('fam2'))
select.select_by_value('1')

Open in new window

0
How to fill autocomplete text in selenium-Python Platform.
I need to enter the city information in the textbox.I tried using key.ARROW_DOWN, Keys.RETURN but it didn't workout. This textbox accepts the information only after clicking on the value from the drop-down list else it don't accept it.  I am not sure how to select option from the drop-down list.
Kindly help on this issue.

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select
import time 
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC


driver = webdriver.Chrome('C:\\Users\\Vivekanandhan\\Downloads\\Compressed\\chromedriver_win32\\chromedriver.exe')


driver.get('http://poorvapunya.com/marriage_match_horoscope.php')
girl_name = driver.find_element_by_name("girl_name")
girl_name.send_keys('girl_name')
birth_date_fm= driver.find_element_by_name("birth_date_fm")
birth_date_fm.send_keys('20.9.2017')

select = Select(driver.find_element_by_name('birth_hours_fm'))
select.select_by_value('1')

select = Select(driver.find_element_by_name('birth_minutes_fm'))
select.select_by_value('49')

select = Select(driver.find_element_by_name('birth_ampm_fm'))
select.select_by_value('0')

birth_city_fm = driver.find_element_by_id("birth_city_fm")
birth_city_fm.click()
birth_city_fm.clear()
#birth_city_fm.send_keys('India', 

Open in new window

0
I just wanted to know How can I make selenium test cases run faster?
0
Hello,
I have submitted Selenium and Eclipse questions and they were never answered.  
There are many topics that are "Proposed."
My assumption is that EE does not have Experts for these topics.  Is my assumption correct?
0
Hello, I got, or it appeared; an extension/plugin, https://getfirebug.com/wiki/index.php/Selectors_Side_Panel, that tells me, Go! is the attribute of css selector "input"
<input onclick="showAlert()" value="Go!" type="button">

Open in new window


I've been searching for, what I believe I once saw; driver.findElement(By.cssSelector(input[@attribute = "Go!"])) ;
But this does not work.  How does one use css Selector with an attribute?
0
Hello,
I'm looking for the right findElement setting for the login button.  I had it working at one time with id="u_0_q", but then it stopped working.  I'm using Window 10 Edge Webdriver
What could work?  The first three lines are the DOM locator.  The first line looks to be a frame, before the login button.
The login button is that of www.facebook.com login
//<label class="uiButton uiButtonConfirm" id="loginbutton" for="u_0_q">
//<input tabindex="4" id="u_0_q" type="submit" value="Log In" data-testid="royal_login_button"
//></label>
				//driver.findElement(By.xpath("html/b[b]/b]ody/div[1]/div[1]/div/div/div/div/div[2]/form/table/tbody/tr[2]/td[3]/label/input")).click();
		//driver.findElement(By.cssSelector("input[data-testid=royal_login_button]")).click();
		//driver.findElement(By.id("u_0_q")).click();
		//driver.findElement(By.cssSelector("input[value=royal_login_button")).click();//absolute not work
		//driver.findElement(By.id("loginbutton")).click();//works for Edge!
		//driver.findElement(By.id("loginbutton")).click();

Open in new window

0
Hello,
I had and now I still have firebug installed on firefox.  The problem I have, and I do not know how it used to be; but when I ran my Selenium Webdriver code (the firefox browser would be openned) and hit F12 the firebug/firepath would be available.  

Am I wrong on this thought?
Now I have to open a separate firefox browser, and when I fit F12, I do get the firebug and firepath.

My thought is that I added some "add-on" that disabled firebug on a selemium webdriver test browser page.
I can't find a way to list the installed add-ons in firefox.  Do you know how?
0
Hello,
I'm looking for an xpath tool, like the one that firefox has.  I have searched and do not find one.  I find xpath helper and Finder for Chrome.
For IE Edge I find nothing.
Is there an xpath for Chrome and Edge?
xpath Finder seems to work on the fact that you already know the xpath.

Can an xpath from firefox be used in Chrome and Edge?
0
Hello, I
The <input name> DOM line below is similar to one that I have used this Webdriver; driver.findElement(By.className("whsOnd zHQkBf"))
to enter my username.  When I click on the button "Next," the page moves on to the page to enter the password.
This is the line for the password;
<input name="password" tabindex="0" class="whsOnd zHQkBf" dir="ltr" spellcheck="false" aria-label="Enter your password" type="password" jsname="YPqjbf" data-initial-value="" data-initial-dir="ltr" autocomplete="current-password" autocorrect="off" autocapitalize="off">

You'll see that the same class name is used, yet the driver.findElement(By.className("whsOnd zHQkBf")) is not working.
Why?  I don't see any other className or id to use.  What can be used?  The test site is gmail.com
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
>