Set environment variable for chromedriver in Robot framework - selenium

I cannot set chromedriver as an environment variable in my Robot framework. It keeps throwing error: chromedriver executable needs to be in PATH.I have shown the screenshot for the error enter image description hereusing intellij.

Since I am using Python + Pycharm Editor + Robot Framework
We will need to save chromedriver.exe in the location C:\Users\befor\AppData\Local\Programs\Python\Python310\Scripts
and then we will need to set the environment variable, variable name - PATH and variable value - C:\Users\befor\AppData\Local\Programs\Python\Python310\Scripts
and we can use the selenium library keyword as follows , (without creating a webdriver)
Open Browser https://salesforce.com browser=chrome

Related

How to get rid of the BrowserStack Local extension popup using ChromeDriver Chrome and Selenium

Am just new to automation and trying to automate browserstack. And i successfully logged to browserStack and passed the credentials and clicked on adding chrome extension . There comes the popup and am unable to get the selector for the buttons in the popup.Did any body face across this issue.
Am using an internal tool to automate,behind the scene i guess its using selenium.
Can anybody help me to find the selectors for the popup in browser stack.
Will attach the screenshot
Any help will be hihly helpful,since its a big blocker for me
If you want to Automate a local hosted URL or internal URL you will have to use BrowserStack Local testing feature. There is no need to add this extension.
There is one documentation on How to Perform local testing. All the steps are mentioned in the documents.
BrowserStack Automate Local Testing
If your usecase involves adding the BrowserStack Local or any other extension as a part of your Test Strategy you need to do it programatically.
You can find a couple od relevant discussions in:
How to install extension permanently in geckodriver
How to load extension within chrome driver in selenium with python
Alternative
As an alternative you can enable Enabling Local Testing either programatically through language bindings or through the command-line interface as follows:
Using language bindings:
Java:
import com.browserstack.local.Local;
# creates an instance of Local
Local bsLocal = new Local();
# replace <browserstack-accesskey> with your key. You can also set an environment variable - "BROWSERSTACK_ACCESS_KEY".
HashMap<String, String> bsLocalArgs = new HashMap<String, String>();
bsLocalArgs.put("key", "<browserstack-accesskey>");
# starts the Local instance with the required arguments
bsLocal.start(bsLocalArgs);
# check if BrowserStack local instance is running
System.out.println(bsLocal.isRunning());
#stop the Local instance
bsLocal.stop();
Steps for using command line:
Download the matching binary for your os: OS X / Linux 32 bit / Linux 64 bit / Windows
Untar/Unzip the binary to a folder/directory on your system.
Open your command-line interface and navigate to the folder containing the Local binary.
Run the binary using the following command:
//OS X/Linux
./BrowserStackLocal --key ACCESS_KEY
//Windows
BrowserStackLocal.exe --key ACCESS_KEY
Configure tests to run with Local Testing connection as follows:
caps.setCapability("browserstack.local", "true");

selnium chromedriver.exe executable needs to be in PATH [dup]

selenium not work, and tried many things
i know this has been ask allllllllot, but i dont know what's going on my computer
1. added enviorment path
2. basically put chromedriver.exe every location in my file
3. correct version (chromedriver and chrome)
4. added executable_path
5. i can opne chromedriver.exe in cmd
driver = webdriver.Chrome(options=chrome_options, executable_path=r'C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe')
all above is not work, i just wanna use selenium,any good idea? except reload system? (win10)
error pic
From the image picture , your chromedriver is clearly in the wrong path. Go to your command prompt , and run
chromedriver.exe
See if you are not able to execute it , it means that the path is incorrect.
Remedy
1) you need to make sure you have install Chrome.
2) Get the latest chrome driver here
3) Set path in your environment
4) In your script , this alone should work
browser = webdriver.Chrome()

Getting Chromedriver logs from standalone Selenium Chrome instance

Summary: How do I extract Chromedriver logs when running Selenium standalone Chrome instance? I.e. interacting via Selenium API commonly on port 4444.
Details:
We are using Protractor to connect to a container running the Docker image selenium/standalone-chrome Selenium "grid". Connection info is specified via the HUB_PORT_4444_TCP_ADDR environment variable. The connection URL ends up being http://localhost:4444/wd/hub. This works fine and our tests are running successfully in Jenkins.
For completeness I'd like to extract the Chromedriver logs and attach them to the build in case we need more info for debugging test failues. How can that be done?
This question seemed like a close match but they are running Chromedriver directly. I need to ask Selenium to provide them somehow.
Log properties of standalone chrome container can be configured using JAVA_OPTS.
You can add JAVA_OPTS environment variable to standalone chrome container
name: JAVA_OPTS
value: "-Dwebdriver.chrome.logfile=<Path to log file, with file name>"
We had a shared volume mounted, and gave path to that folder for putting log file.
Used yaml file for creating container template so used in above mentioned way.
If you are using CLI to launch container, same can be passed through CLI too.

Configuring portable browser binary via Robot framework

I need to run my Robot test scripts using portable browsers of specific versions, instead of the one those are installed on the host machine. How can I achieve this? Is there any option available in Selenium Capabilities?
My requirement is for Chrome, IE, and Firefox - all these browser's portable versions.
You can use the following method to specify the binary file location as an experimental option before calling Create Webdriver keyword.
Call Method ${chromeOptions} add_experimental_option prefs ${prefs}
${chromeOptions.binary_location} Set Variable <insert your path here>
Create Webdriver Chrome chrome_options=${chromeOptions}
Can be done this way (same answer as #GPT14, but more complete):
${options}= Evaluate sys.modules['selenium.webdriver'].ChromeOptions() sys, selenium.webdriver
${prefs} Create Dictionary
Call Method ${options} add_experimental_option prefs ${prefs}
${options.binary_location} Set Variable ${setYourPathToChromePortableHere}
Create Webdriver Chrome chrome_options=${options}
Go To ${URL}
A possibility is to manipulate the PATH environment variable so that it finds the portable browser first that the installed one (and before calling Create Webdriver or Open Browser).
This can be done using OperatingSystem keywords, like for example, Set Environment Variable.

Selenium.WebDriver - I get error when I try to run my test in Chrome

I get this error when I try to run my test in Chrome:
Initialization method AutomationUsingSelenium.SmuladorChrome.MyTestInitialize threw exception. OpenQA.Selenium.DriverServiceNotFoundException: OpenQA.Selenium.DriverServiceNotFoundException
What is the cause?
Finally I resolved my issue as follows:
1) I copied chromedriver.exe in Chrome directory link, but you can put it in any directory. I decided to put it here.
2) I Initialized a new instance of the ChromeDriver class using the specified
// path to the directory containing ChromeDriver.exe
My code:
IWebDriver drive = new ChromeDriver
("C:\\Documents and Settings\\...\\ApplicationData\\Google\\Chrome\\Application");
And it works just perfect. Thanks All.
Install Selenium.Chrome.WebDriver NuGet package to the project and you will not get the error again.
In Visual Studio, right click the Project, click Manage NuGet Packages... , Search for Selenium.Chrome.WebDriver and click install.
Enjoy Selenium.
Lets assume chromedriver.exe is present in below path: G:\Selenium_Csharp\Jar\chromedriver_win32\chromedriver.exe
To execute your test in Chrome set the path to the directory/folder containing chromedriver.exe without selecting chromedriver.exe file name.
driver = new ChromeDriver("G:\\Selenium_Csharp\\Jar\\chromedriver_win32");
driver.Url ="http://www.gmail.com";
driver.Manage().Window.Maximize();
OR
driver = new ChromeDriver(#"G:\Selenium_Csharp\\Jar\\chromedriver_win32");
driver.Url ="http://www.gmail.com";
driver.Manage().Window.Maximize();
This is the error i see:
OpenQA.Selenium.DriverServiceNotFoundException: The chromedriver.exe file does not exist in the current directory or in a directory on the PATH environment variable.
I resolved this problem by specifying the 'testsettings' argument in the command to run the unit tests.
E.g.
E:\Development\SampleProject\SampleProject.MvcWebApp\SampleProject.MvcWebApp.JavaScriptUnitTests\JavaScriptUnitTests\bin\Debug>"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\mstest.exe" /testcontainer:JavaScriptUnitTests.dll /category:"JavaScriptUnitTests" /testsettings:..\..\..\Local.Testsettings /resultsfile:..\..\..\..\..\MsTestResults\SampleProject.MvcWebApp.JavaScript.Tests.trx
I use "/testsettings:......\Local.Testsettings" because the Local.testsettings file is 4 levels higher than the level where I am executing this command. You should change it accordingly.
This is the command used in ccnet.config file
<exec>
<executable>C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\mstest.exe</executable>
<baseDirectory>SampleProject.MvcWebApp\SampleProject.MvcWebApp.JavaScriptUnitTests\JavaScriptUnitTests\bin\Debug</baseDirectory>
<buildArgs>/testcontainer:JavaScriptUnitTests.dll /category:"JavaScriptUnitTests" /testsettings:..\..\..\Local.Testsettings /resultsfile:..\..\..\..\..\MsTestResults\SampleProject.MvcWebApp.JavaScript.Tests.trx</buildArgs>
<successExitCodes>0</successExitCodes>
</exec>