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










0















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.










share|improve this question
























  • 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















0















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.










share|improve this question
























  • 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













0












0








0








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.










share|improve this question
















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






share|improve this question















share|improve this question













share|improve this question




share|improve this question








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

















  • 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












1 Answer
1






active

oldest

votes


















0














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






share|improve this answer






















    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
    );



    );













    draft saved

    draft discarded


















    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









    0














    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






    share|improve this answer



























      0














      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






      share|improve this answer

























        0












        0








        0







        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






        share|improve this answer













        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







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Mar 7 at 4:51









        Nic LaforgeNic Laforge

        665




        665





























            draft saved

            draft discarded
















































            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.




            draft saved


            draft discarded














            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





















































            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







            Popular posts from this blog

            Identity Server 4 is not redirecting to Angular app after login2019 Community Moderator ElectionIdentity Server 4 and dockerIdentityserver implicit flow unauthorized_clientIdentityServer Hybrid Flow - Access Token is null after user successful loginIdentity Server to MVC client : Page Redirect After loginLogin with Steam OpenId(oidc-client-js)Identity Server 4+.NET Core 2.0 + IdentityIdentityServer4 post-login redirect not working in Edge browserCall to IdentityServer4 generates System.NullReferenceException: Object reference not set to an instance of an objectIdentityServer4 without HTTPS not workingHow to get Authorization code from identity server without login form

            2005 Ahvaz unrest Contents Background Causes Casualties Aftermath See also References Navigation menue"At Least 10 Are Killed by Bombs in Iran""Iran"Archived"Arab-Iranians in Iran to make April 15 'Day of Fury'"State of Mind, State of Order: Reactions to Ethnic Unrest in the Islamic Republic of Iran.10.1111/j.1754-9469.2008.00028.x"Iran hangs Arab separatists"Iran Overview from ArchivedConstitution of the Islamic Republic of Iran"Tehran puzzled by forged 'riots' letter""Iran and its minorities: Down in the second class""Iran: Handling Of Ahvaz Unrest Could End With Televised Confessions""Bombings Rock Iran Ahead of Election""Five die in Iran ethnic clashes""Iran: Need for restraint as anniversary of unrest in Khuzestan approaches"Archived"Iranian Sunni protesters killed in clashes with security forces"Archived

            Can't initialize raids on a new ASUS Prime B360M-A motherboard2019 Community Moderator ElectionSimilar to RAID config yet more like mirroring solution?Can't get motherboard serial numberWhy does the BIOS entry point start with a WBINVD instruction?UEFI performance Asus Maximus V Extreme