Selenium giving different results2019 Community Moderator ElectionWhat is the difference between @staticmethod and @classmethod?Difference between append vs. extend list methods in PythonDifference between __str__ and __repr__?Why does comparing strings using either '==' or 'is' sometimes produce a different result?What are the differences between type() and isinstance()?Get HTML Source of WebElement in Selenium WebDriver using PythonHow do I find an element that contains specific text in Selenium Webdriver (Python)?innerHTML of multiple elements with the same class namePython Selenium Stale Element Hangs Foreverpython selenium xpath grabbing elements
Why restrict private health insurance?
How to install round brake pads
Finding the minimum value of a function without using Calculus
Writing text next to a table
How do you make a gun that shoots melee weapons and/or swords?
Is it appropriate to ask a former professor to order a book for me through an inter-library loan?
Professor forcing me to attend a conference, I can't afford even with 50% funding
Would those living in a "perfect society" not understand satire
Why do we say 'Pairwise Disjoint', rather than 'Disjoint'?
Translation of 答えを知っている人はいませんでした
I reported the illegal activity of my boss to his boss. My boss found out. Now I am being punished. What should I do?
Leveling the sagging side of the home
Converting from "matrix" data into "coordinate" data
Can one live in the U.S. and not use a credit card?
How to copy the rest of lines of a file to another file
How to write a chaotic neutral protagonist and prevent my readers from thinking they are evil?
What does *dead* mean in *What do you mean, dead?*?
What will happen if my luggage gets delayed?
Do black holes violate the conservation of mass?
"If + would" conditional in present perfect tense
Use Mercury as quenching liquid for swords?
Strange opamp's output impedance in spice
Which country has more?
Trocar background-image com delay via jQuery
Selenium giving different results
2019 Community Moderator ElectionWhat is the difference between @staticmethod and @classmethod?Difference between append vs. extend list methods in PythonDifference between __str__ and __repr__?Why does comparing strings using either '==' or 'is' sometimes produce a different result?What are the differences between type() and isinstance()?Get HTML Source of WebElement in Selenium WebDriver using PythonHow do I find an element that contains specific text in Selenium Webdriver (Python)?innerHTML of multiple elements with the same class namePython Selenium Stale Element Hangs Foreverpython selenium xpath grabbing elements
I'm having a bit of an issue using Selenium with python. There is a page I'm scraping, and I'm accessing a children of a parent element. However each time I run the script, it's not always guaranteed that I'll be able to get the children.
So for example, I have:
filters = driver.find_element_by_class_name("classname")
filters_children = filters.find_elements_by_class_name("anotherclassname")
And I print out filters_children[1] just to make sure.
Around 60% it will work fine, and filters_children will have a list of the children elements. However the other 40%, it'll have a NoneType so it won't be able to grab the elements.
I tried using a sleep of up to 10 seconds after the page rendered but that hasn't helped a whole lot.
python selenium
add a comment |
I'm having a bit of an issue using Selenium with python. There is a page I'm scraping, and I'm accessing a children of a parent element. However each time I run the script, it's not always guaranteed that I'll be able to get the children.
So for example, I have:
filters = driver.find_element_by_class_name("classname")
filters_children = filters.find_elements_by_class_name("anotherclassname")
And I print out filters_children[1] just to make sure.
Around 60% it will work fine, and filters_children will have a list of the children elements. However the other 40%, it'll have a NoneType so it won't be able to grab the elements.
I tried using a sleep of up to 10 seconds after the page rendered but that hasn't helped a whole lot.
python selenium
Have you tried selecting the element by jspath or xpath, and did that give you the same results?
– Mike
Mar 6 at 23:23
I have not tried that Mike, I'll try that out thanks!
– sosa067
Mar 6 at 23:29
Can you post a link to the page?
– JeffC
Mar 7 at 1:10
add a comment |
I'm having a bit of an issue using Selenium with python. There is a page I'm scraping, and I'm accessing a children of a parent element. However each time I run the script, it's not always guaranteed that I'll be able to get the children.
So for example, I have:
filters = driver.find_element_by_class_name("classname")
filters_children = filters.find_elements_by_class_name("anotherclassname")
And I print out filters_children[1] just to make sure.
Around 60% it will work fine, and filters_children will have a list of the children elements. However the other 40%, it'll have a NoneType so it won't be able to grab the elements.
I tried using a sleep of up to 10 seconds after the page rendered but that hasn't helped a whole lot.
python selenium
I'm having a bit of an issue using Selenium with python. There is a page I'm scraping, and I'm accessing a children of a parent element. However each time I run the script, it's not always guaranteed that I'll be able to get the children.
So for example, I have:
filters = driver.find_element_by_class_name("classname")
filters_children = filters.find_elements_by_class_name("anotherclassname")
And I print out filters_children[1] just to make sure.
Around 60% it will work fine, and filters_children will have a list of the children elements. However the other 40%, it'll have a NoneType so it won't be able to grab the elements.
I tried using a sleep of up to 10 seconds after the page rendered but that hasn't helped a whole lot.
python selenium
python selenium
edited Mar 7 at 1:56
yong
6,8061412
6,8061412
asked Mar 6 at 23:08
sosa067sosa067
11
11
Have you tried selecting the element by jspath or xpath, and did that give you the same results?
– Mike
Mar 6 at 23:23
I have not tried that Mike, I'll try that out thanks!
– sosa067
Mar 6 at 23:29
Can you post a link to the page?
– JeffC
Mar 7 at 1:10
add a comment |
Have you tried selecting the element by jspath or xpath, and did that give you the same results?
– Mike
Mar 6 at 23:23
I have not tried that Mike, I'll try that out thanks!
– sosa067
Mar 6 at 23:29
Can you post a link to the page?
– JeffC
Mar 7 at 1:10
Have you tried selecting the element by jspath or xpath, and did that give you the same results?
– Mike
Mar 6 at 23:23
Have you tried selecting the element by jspath or xpath, and did that give you the same results?
– Mike
Mar 6 at 23:23
I have not tried that Mike, I'll try that out thanks!
– sosa067
Mar 6 at 23:29
I have not tried that Mike, I'll try that out thanks!
– sosa067
Mar 6 at 23:29
Can you post a link to the page?
– JeffC
Mar 7 at 1:10
Can you post a link to the page?
– JeffC
Mar 7 at 1:10
add a comment |
1 Answer
1
active
oldest
votes
Your parent class might be too broad and some time you might get a different element, then your second query will fail to find the proper child.
When searching via css selector, you can combine multiple nested class by using spaces between them. You could then combine your nested query into one.
Also I suggest that you use wait until in this case to ensure that the element will be present. Compare to sleep, this will send the request periodically to the page until it finds your request.
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
wait = WebDriverWait(driver, '30')
wait.until(EC.presence_of_all_elements_located("css selector", ".classname .anotherclassname")))
If the element also need to be visible, change presence_of_all_elements_located to visibility_of_any_elements_located
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%2f55033629%2fselenium-giving-different-results%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
Your parent class might be too broad and some time you might get a different element, then your second query will fail to find the proper child.
When searching via css selector, you can combine multiple nested class by using spaces between them. You could then combine your nested query into one.
Also I suggest that you use wait until in this case to ensure that the element will be present. Compare to sleep, this will send the request periodically to the page until it finds your request.
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
wait = WebDriverWait(driver, '30')
wait.until(EC.presence_of_all_elements_located("css selector", ".classname .anotherclassname")))
If the element also need to be visible, change presence_of_all_elements_located to visibility_of_any_elements_located
add a comment |
Your parent class might be too broad and some time you might get a different element, then your second query will fail to find the proper child.
When searching via css selector, you can combine multiple nested class by using spaces between them. You could then combine your nested query into one.
Also I suggest that you use wait until in this case to ensure that the element will be present. Compare to sleep, this will send the request periodically to the page until it finds your request.
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
wait = WebDriverWait(driver, '30')
wait.until(EC.presence_of_all_elements_located("css selector", ".classname .anotherclassname")))
If the element also need to be visible, change presence_of_all_elements_located to visibility_of_any_elements_located
add a comment |
Your parent class might be too broad and some time you might get a different element, then your second query will fail to find the proper child.
When searching via css selector, you can combine multiple nested class by using spaces between them. You could then combine your nested query into one.
Also I suggest that you use wait until in this case to ensure that the element will be present. Compare to sleep, this will send the request periodically to the page until it finds your request.
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
wait = WebDriverWait(driver, '30')
wait.until(EC.presence_of_all_elements_located("css selector", ".classname .anotherclassname")))
If the element also need to be visible, change presence_of_all_elements_located to visibility_of_any_elements_located
Your parent class might be too broad and some time you might get a different element, then your second query will fail to find the proper child.
When searching via css selector, you can combine multiple nested class by using spaces between them. You could then combine your nested query into one.
Also I suggest that you use wait until in this case to ensure that the element will be present. Compare to sleep, this will send the request periodically to the page until it finds your request.
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
wait = WebDriverWait(driver, '30')
wait.until(EC.presence_of_all_elements_located("css selector", ".classname .anotherclassname")))
If the element also need to be visible, change presence_of_all_elements_located to visibility_of_any_elements_located
answered Mar 7 at 4:51
Nic LaforgeNic Laforge
665
665
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%2f55033629%2fselenium-giving-different-results%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
Have you tried selecting the element by jspath or xpath, and did that give you the same results?
– Mike
Mar 6 at 23:23
I have not tried that Mike, I'll try that out thanks!
– sosa067
Mar 6 at 23:29
Can you post a link to the page?
– JeffC
Mar 7 at 1:10