Selenium: aggregate Selenium By in presence_of_element_located()
Im trying out Selenium with Python. Is there a way to simplify code even more?
CLASS_NAME = "CLASS_NAME"
CSS_SELECTOR = "CSS_SELECTOR"
ID = "ID"
def check_element_type(element_type, element_string):
if element_type == CLASS_NAME:
return WebDriverWait(browser, timeout).until(EC.presence_of_element_located((By.CLASS_NAME, element_string)))
elif element_type == CSS_SELECTOR:
return WebDriverWait(browser, timeout).until(EC.presence_of_element_located((By.CSS_SELECTOR, element_string)))
elif element_type == ID:
return WebDriverWait(browser, timeout).until(EC.presence_of_element_located((By.ID, element_string)))
This is the concept goal but it does not work
def get_element(element_type, element_string):
return WebDriverWait(browser, timeout).until(EC.presence_of_element_located((By.element_type, element_string)))
It would throw an error if I explicitly import selenium.webdriver.common.by
while having constant strings of the same name CLASS_NAME = "CLASS_NAME"
, CSS_SELECTOR = "CSS_SELECTOR"
python selenium
add a comment |
Im trying out Selenium with Python. Is there a way to simplify code even more?
CLASS_NAME = "CLASS_NAME"
CSS_SELECTOR = "CSS_SELECTOR"
ID = "ID"
def check_element_type(element_type, element_string):
if element_type == CLASS_NAME:
return WebDriverWait(browser, timeout).until(EC.presence_of_element_located((By.CLASS_NAME, element_string)))
elif element_type == CSS_SELECTOR:
return WebDriverWait(browser, timeout).until(EC.presence_of_element_located((By.CSS_SELECTOR, element_string)))
elif element_type == ID:
return WebDriverWait(browser, timeout).until(EC.presence_of_element_located((By.ID, element_string)))
This is the concept goal but it does not work
def get_element(element_type, element_string):
return WebDriverWait(browser, timeout).until(EC.presence_of_element_located((By.element_type, element_string)))
It would throw an error if I explicitly import selenium.webdriver.common.by
while having constant strings of the same name CLASS_NAME = "CLASS_NAME"
, CSS_SELECTOR = "CSS_SELECTOR"
python selenium
add a comment |
Im trying out Selenium with Python. Is there a way to simplify code even more?
CLASS_NAME = "CLASS_NAME"
CSS_SELECTOR = "CSS_SELECTOR"
ID = "ID"
def check_element_type(element_type, element_string):
if element_type == CLASS_NAME:
return WebDriverWait(browser, timeout).until(EC.presence_of_element_located((By.CLASS_NAME, element_string)))
elif element_type == CSS_SELECTOR:
return WebDriverWait(browser, timeout).until(EC.presence_of_element_located((By.CSS_SELECTOR, element_string)))
elif element_type == ID:
return WebDriverWait(browser, timeout).until(EC.presence_of_element_located((By.ID, element_string)))
This is the concept goal but it does not work
def get_element(element_type, element_string):
return WebDriverWait(browser, timeout).until(EC.presence_of_element_located((By.element_type, element_string)))
It would throw an error if I explicitly import selenium.webdriver.common.by
while having constant strings of the same name CLASS_NAME = "CLASS_NAME"
, CSS_SELECTOR = "CSS_SELECTOR"
python selenium
Im trying out Selenium with Python. Is there a way to simplify code even more?
CLASS_NAME = "CLASS_NAME"
CSS_SELECTOR = "CSS_SELECTOR"
ID = "ID"
def check_element_type(element_type, element_string):
if element_type == CLASS_NAME:
return WebDriverWait(browser, timeout).until(EC.presence_of_element_located((By.CLASS_NAME, element_string)))
elif element_type == CSS_SELECTOR:
return WebDriverWait(browser, timeout).until(EC.presence_of_element_located((By.CSS_SELECTOR, element_string)))
elif element_type == ID:
return WebDriverWait(browser, timeout).until(EC.presence_of_element_located((By.ID, element_string)))
This is the concept goal but it does not work
def get_element(element_type, element_string):
return WebDriverWait(browser, timeout).until(EC.presence_of_element_located((By.element_type, element_string)))
It would throw an error if I explicitly import selenium.webdriver.common.by
while having constant strings of the same name CLASS_NAME = "CLASS_NAME"
, CSS_SELECTOR = "CSS_SELECTOR"
python selenium
python selenium
asked Jan 2 at 2:46
DeeDee
129315
129315
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
The By
return string
class By(object):
"""
Set of supported locator strategies.
"""
ID = "id"
XPATH = "xpath"
LINK_TEXT = "link text"
PARTIAL_LINK_TEXT = "partial link text"
NAME = "name"
TAG_NAME = "tag name"
CLASS_NAME = "class name"
CSS_SELECTOR = "css selector"
in your method change By.element_type
to element_type
def get_element(element_type, element_string):
return WebDriverWait(browser, timeout).until(EC.presence_of_element_located((element_type, element_string)))
and use it like
element = get_element("css selector", "div.myClass")
element = get_element("class name", "myClass")
element = get_element("xpath", "//div[@='myClass']")
or
CLASS_NAME = "class name"
CSS_SELECTOR = "css selector"
element = get_element(CSS_SELECTOR, "div.myClass")
element = get_element(CLASS_NAME, "myClass")
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54000665%2fselenium-aggregate-selenium-by-in-presence-of-element-located%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
The By
return string
class By(object):
"""
Set of supported locator strategies.
"""
ID = "id"
XPATH = "xpath"
LINK_TEXT = "link text"
PARTIAL_LINK_TEXT = "partial link text"
NAME = "name"
TAG_NAME = "tag name"
CLASS_NAME = "class name"
CSS_SELECTOR = "css selector"
in your method change By.element_type
to element_type
def get_element(element_type, element_string):
return WebDriverWait(browser, timeout).until(EC.presence_of_element_located((element_type, element_string)))
and use it like
element = get_element("css selector", "div.myClass")
element = get_element("class name", "myClass")
element = get_element("xpath", "//div[@='myClass']")
or
CLASS_NAME = "class name"
CSS_SELECTOR = "css selector"
element = get_element(CSS_SELECTOR, "div.myClass")
element = get_element(CLASS_NAME, "myClass")
add a comment |
The By
return string
class By(object):
"""
Set of supported locator strategies.
"""
ID = "id"
XPATH = "xpath"
LINK_TEXT = "link text"
PARTIAL_LINK_TEXT = "partial link text"
NAME = "name"
TAG_NAME = "tag name"
CLASS_NAME = "class name"
CSS_SELECTOR = "css selector"
in your method change By.element_type
to element_type
def get_element(element_type, element_string):
return WebDriverWait(browser, timeout).until(EC.presence_of_element_located((element_type, element_string)))
and use it like
element = get_element("css selector", "div.myClass")
element = get_element("class name", "myClass")
element = get_element("xpath", "//div[@='myClass']")
or
CLASS_NAME = "class name"
CSS_SELECTOR = "css selector"
element = get_element(CSS_SELECTOR, "div.myClass")
element = get_element(CLASS_NAME, "myClass")
add a comment |
The By
return string
class By(object):
"""
Set of supported locator strategies.
"""
ID = "id"
XPATH = "xpath"
LINK_TEXT = "link text"
PARTIAL_LINK_TEXT = "partial link text"
NAME = "name"
TAG_NAME = "tag name"
CLASS_NAME = "class name"
CSS_SELECTOR = "css selector"
in your method change By.element_type
to element_type
def get_element(element_type, element_string):
return WebDriverWait(browser, timeout).until(EC.presence_of_element_located((element_type, element_string)))
and use it like
element = get_element("css selector", "div.myClass")
element = get_element("class name", "myClass")
element = get_element("xpath", "//div[@='myClass']")
or
CLASS_NAME = "class name"
CSS_SELECTOR = "css selector"
element = get_element(CSS_SELECTOR, "div.myClass")
element = get_element(CLASS_NAME, "myClass")
The By
return string
class By(object):
"""
Set of supported locator strategies.
"""
ID = "id"
XPATH = "xpath"
LINK_TEXT = "link text"
PARTIAL_LINK_TEXT = "partial link text"
NAME = "name"
TAG_NAME = "tag name"
CLASS_NAME = "class name"
CSS_SELECTOR = "css selector"
in your method change By.element_type
to element_type
def get_element(element_type, element_string):
return WebDriverWait(browser, timeout).until(EC.presence_of_element_located((element_type, element_string)))
and use it like
element = get_element("css selector", "div.myClass")
element = get_element("class name", "myClass")
element = get_element("xpath", "//div[@='myClass']")
or
CLASS_NAME = "class name"
CSS_SELECTOR = "css selector"
element = get_element(CSS_SELECTOR, "div.myClass")
element = get_element(CLASS_NAME, "myClass")
answered Jan 2 at 3:46
ewwinkewwink
12k22339
12k22339
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54000665%2fselenium-aggregate-selenium-by-in-presence-of-element-located%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown