Reputation: 47
I want to use selenium webdriver methods in the robot framework library.
def custom_go_to
driver = BuiltIn().get_library_instance('SeleniumLibrary')
driver.go_to(url)
The above code from custom library works fine, but I want to use selenium method at the place of robotframework builtin library. When I try to use driver.get(url) it says
'SeleniumLibrary' object has no attribute 'get'
The custom library I created ERP.py looks like
class ERP:
@keyword
def custom_go_to(self, url):
driver = BuiltIn().get_library_instance('SeleniumLibrary')
driver.get(url)
And Test Case looks like
***Settings***
Library SeleniumLibrary
Library path_to_lib/ERP.py
*** Variable ***
${BROWSER} | chrome
${URL} | facebook.com
***Test Cases***
Open the browser using an inbuilt keyword and go to a given URL using custom go to using EventFiringWebDriver.
Open Browser | about:blank | ${BROWSER}
Custom Go To | ${URL}
How can I use Selenium webdriver methods inside the robot framework library?
Upvotes: 3
Views: 3451
Reputation: 52
SeleniumLibrary have a "Get Element Attribute" keyword.
See documentation here: RobotFramework SeleniumLibrary Documentation
Upvotes: 0
Reputation: 386372
The selenium library itself is not a webdriver object, it's just an instance of the SeleniumLibrary class. You need to get a reference to the driver, which is an attribute in the library.
def custom_go_to(url):
selib = BuiltIn().get_library_instance('SeleniumLibrary')
selib.driver.get(url)
For more information about interacting with SeleniumLibrary at a low level, see the document Extending SeleniumLibrary in the SeleniumLibrary git repository.
Upvotes: 6
Reputation: 1062
Reproduced this as well:
driver.get(url)
produces AttributeError: 'SeleniumLibrary' object has no attribute 'get'
An error with an existing keyword, such as driver.go_to(url)
produces a different error: No browser is open.
So, use existing keywords or make your own.
Upvotes: -1
Reputation: 443
'SeleniumLibrary' do not have get attribute. Please refer to Selenium Library Robot Framework for more info.
You should be using
Open Browser ${LOGIN URL} ${BROWSER}
Below is example from the link
Example
*** Settings ***
Documentation Simple example using SeleniumLibrary.
Library SeleniumLibrary
*** Variables ***
${LOGIN URL} http://localhost:7272
${BROWSER} Chrome
*** Test Cases ***
Valid Login
Open Browser To Login Page
*** Keywords ***
Open Browser To Login Page
Open Browser ${LOGIN URL} ${BROWSER}
Upvotes: 0