TypeError: 'FirefoxWebElement' object is not iterable [duplicate] The 2019 Stack Overflow Developer Survey Results Are InTypeError: 'WebElement' object is not iterable errorTypeError: 'FirefoxWebElement' object does not support indexingSelenium Webdriver - tried to run command without establishing a connectionHow to know if an object has an attribute in PythonHow to remove items from a list while iterating?What is the meaning of a single and a double underscore before an object name?In Python, how do I determine if an object is iterable?Determine the type of an object?null object in Python?Iterating over dictionaries using 'for' loopsPython class inherits objectTypeError: 'module' object is not callableHow to iterate over rows in a DataFrame in Pandas?

Where to refill my bottle in India?

Could JWST stay at L2 "forever"?

Realistic Alternatives to Dust: What Else Could Feed a Plankton Bloom?

Time travel alters history but people keep saying nothing's changed

How to answer pointed "are you quitting" questioning when I don't want them to suspect

Pristine Bit Checking

How can I fix this gap between bookcases I made?

What could be the right powersource for 15 seconds lifespan disposable giant chainsaw?

Can't find the latex code for the ⍎ (down tack jot) symbol

Output the Arecibo Message

Confusion about non-derivable continuous functions

"Riffle" two strings

Monty Hall variation

What does "sndry explns" mean in one of the Hitchhiker's guide books?

"To split hairs" vs "To be pedantic"

What is the best strategy for white in this position?

Geography at the pixel level

"What time...?" or "At what time...?" - what is more grammatically correct?

What is a mixture ratio of propellant?

Should I use my personal or workplace e-mail when registering to external websites for work purpose?

Why is the maximum length of openwrt’s root password 8 characters?

Why don't Unix/Linux systems traverse through directories until they find the required version of a linked library?

Is bread bad for ducks?

In microwave frequencies, do you use a circulator when you need a (near) perfect diode?



TypeError: 'FirefoxWebElement' object is not iterable [duplicate]



The 2019 Stack Overflow Developer Survey Results Are InTypeError: 'WebElement' object is not iterable errorTypeError: 'FirefoxWebElement' object does not support indexingSelenium Webdriver - tried to run command without establishing a connectionHow to know if an object has an attribute in PythonHow to remove items from a list while iterating?What is the meaning of a single and a double underscore before an object name?In Python, how do I determine if an object is iterable?Determine the type of an object?null object in Python?Iterating over dictionaries using 'for' loopsPython class inherits objectTypeError: 'module' object is not callableHow to iterate over rows in a DataFrame in Pandas?



.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty height:90px;width:728px;box-sizing:border-box;








0
















This question already has an answer here:



  • TypeError: 'WebElement' object is not iterable error

    2 answers



I would like to get URLs of Airbnb's listing pages by Python, selenium, firefox, however, my program doesn't work well.



My error code is as bellow;



Original exception was:
Traceback (most recent call last):
File "pages.py", line 19, in <module>
for links in driver.find_element_by_xpath('//div[contains(@id, "listing-")]//a[contains(@href, "rooms")]'):
TypeError: 'FirefoxWebElement' object is not iterable


Here is my code!



from selenium import webdriver
from selenium.webdriver import FirefoxOptions
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException

test_url = 'https://www.airbnb.jp/s/%E6%97%A5%E6%9C%AC%E6%B2%96%E7%B8%84%E7%9C%8C/homes?refinement_paths%5B%5D=%2Fhomes&query=%E6%97%A5%E6%9C%AC%E6%B2%96%E7%B8%84%E7%9C%8C&price_min=15000&allow_override%5B%5D=&checkin=2018-07-07&checkout=2018-07-08&place_id=ChIJ51ur7mJw9TQR79H9hnJhuzU&s_tag=z4scstF7'

opts = FirefoxOptions()
opts.add_argument("--headless")
driver = webdriver.Firefox(firefox_options=opts)
driver.get(test_url)
driver.implicitly_wait(30)

for links in driver.find_element_by_xpath('//div[contains(@id, "listing-")]//a[contains(@href, "rooms")]'):
listing_url = links.get_attribute('href')
print(listing_url)

driver.quit()


I tried to change my code, another code is as bellow;
(Error message is same as my first code.)



from selenium import webdriver
from selenium.webdriver import FirefoxOptions
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException

test_url = 'https://www.airbnb.jp/s/%E6%97%A5%E6%9C%AC%E6%B2%96%E7%B8%84%E7%9C%8C/homes?refinement_paths%5B%5D=%2Fhomes&query=%E6%97%A5%E6%9C%AC%E6%B2%96%E7%B8%84%E7%9C%8C&price_min=15000&allow_override%5B%5D=&checkin=2018-07-07&checkout=2018-07-08&place_id=ChIJ51ur7mJw9TQR79H9hnJhuzU&s_tag=z4scstF7'

opts = FirefoxOptions()
opts.add_argument("--headless")
driver = webdriver.Firefox(firefox_options=opts)
driver.get(test_url)
driver.implicitly_wait(30)


links = driver.find_element_by_xpath('//a[contains(@href, "rooms")]')
for link in links:
listing_url = link.get_attribute('href')
print(listing_url)

driver.quit()


I am glad to you reply if you have a time.
Thank you.










share|improve this question













marked as duplicate by Andersson, Corey Goldberg python
Users with the  python badge can single-handedly close python questions as duplicates and reopen them as needed.

StackExchange.ready(function()
if (StackExchange.options.isMobile) return;

$('.dupe-hammer-message-hover:not(.hover-bound)').each(function()
var $hover = $(this).addClass('hover-bound'),
$msg = $hover.siblings('.dupe-hammer-message');

$hover.hover(
function()
$hover.showInfoMessage('',
messageElement: $msg.clone().show(),
transient: false,
position: my: 'bottom left', at: 'top center', offsetTop: -7 ,
dismissable: false,
relativeToBody: true
);
,
function()
StackExchange.helpers.removeMessages();

);
);
);
Jun 17 '18 at 16:28


This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.
























    0
















    This question already has an answer here:



    • TypeError: 'WebElement' object is not iterable error

      2 answers



    I would like to get URLs of Airbnb's listing pages by Python, selenium, firefox, however, my program doesn't work well.



    My error code is as bellow;



    Original exception was:
    Traceback (most recent call last):
    File "pages.py", line 19, in <module>
    for links in driver.find_element_by_xpath('//div[contains(@id, "listing-")]//a[contains(@href, "rooms")]'):
    TypeError: 'FirefoxWebElement' object is not iterable


    Here is my code!



    from selenium import webdriver
    from selenium.webdriver import FirefoxOptions
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    from selenium.common.exceptions import TimeoutException

    test_url = 'https://www.airbnb.jp/s/%E6%97%A5%E6%9C%AC%E6%B2%96%E7%B8%84%E7%9C%8C/homes?refinement_paths%5B%5D=%2Fhomes&query=%E6%97%A5%E6%9C%AC%E6%B2%96%E7%B8%84%E7%9C%8C&price_min=15000&allow_override%5B%5D=&checkin=2018-07-07&checkout=2018-07-08&place_id=ChIJ51ur7mJw9TQR79H9hnJhuzU&s_tag=z4scstF7'

    opts = FirefoxOptions()
    opts.add_argument("--headless")
    driver = webdriver.Firefox(firefox_options=opts)
    driver.get(test_url)
    driver.implicitly_wait(30)

    for links in driver.find_element_by_xpath('//div[contains(@id, "listing-")]//a[contains(@href, "rooms")]'):
    listing_url = links.get_attribute('href')
    print(listing_url)

    driver.quit()


    I tried to change my code, another code is as bellow;
    (Error message is same as my first code.)



    from selenium import webdriver
    from selenium.webdriver import FirefoxOptions
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    from selenium.common.exceptions import TimeoutException

    test_url = 'https://www.airbnb.jp/s/%E6%97%A5%E6%9C%AC%E6%B2%96%E7%B8%84%E7%9C%8C/homes?refinement_paths%5B%5D=%2Fhomes&query=%E6%97%A5%E6%9C%AC%E6%B2%96%E7%B8%84%E7%9C%8C&price_min=15000&allow_override%5B%5D=&checkin=2018-07-07&checkout=2018-07-08&place_id=ChIJ51ur7mJw9TQR79H9hnJhuzU&s_tag=z4scstF7'

    opts = FirefoxOptions()
    opts.add_argument("--headless")
    driver = webdriver.Firefox(firefox_options=opts)
    driver.get(test_url)
    driver.implicitly_wait(30)


    links = driver.find_element_by_xpath('//a[contains(@href, "rooms")]')
    for link in links:
    listing_url = link.get_attribute('href')
    print(listing_url)

    driver.quit()


    I am glad to you reply if you have a time.
    Thank you.










    share|improve this question













    marked as duplicate by Andersson, Corey Goldberg python
    Users with the  python badge can single-handedly close python questions as duplicates and reopen them as needed.

    StackExchange.ready(function()
    if (StackExchange.options.isMobile) return;

    $('.dupe-hammer-message-hover:not(.hover-bound)').each(function()
    var $hover = $(this).addClass('hover-bound'),
    $msg = $hover.siblings('.dupe-hammer-message');

    $hover.hover(
    function()
    $hover.showInfoMessage('',
    messageElement: $msg.clone().show(),
    transient: false,
    position: my: 'bottom left', at: 'top center', offsetTop: -7 ,
    dismissable: false,
    relativeToBody: true
    );
    ,
    function()
    StackExchange.helpers.removeMessages();

    );
    );
    );
    Jun 17 '18 at 16:28


    This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.




















      0












      0








      0









      This question already has an answer here:



      • TypeError: 'WebElement' object is not iterable error

        2 answers



      I would like to get URLs of Airbnb's listing pages by Python, selenium, firefox, however, my program doesn't work well.



      My error code is as bellow;



      Original exception was:
      Traceback (most recent call last):
      File "pages.py", line 19, in <module>
      for links in driver.find_element_by_xpath('//div[contains(@id, "listing-")]//a[contains(@href, "rooms")]'):
      TypeError: 'FirefoxWebElement' object is not iterable


      Here is my code!



      from selenium import webdriver
      from selenium.webdriver import FirefoxOptions
      from selenium.webdriver.common.by import By
      from selenium.webdriver.support.ui import WebDriverWait
      from selenium.webdriver.support import expected_conditions as EC
      from selenium.common.exceptions import TimeoutException

      test_url = 'https://www.airbnb.jp/s/%E6%97%A5%E6%9C%AC%E6%B2%96%E7%B8%84%E7%9C%8C/homes?refinement_paths%5B%5D=%2Fhomes&query=%E6%97%A5%E6%9C%AC%E6%B2%96%E7%B8%84%E7%9C%8C&price_min=15000&allow_override%5B%5D=&checkin=2018-07-07&checkout=2018-07-08&place_id=ChIJ51ur7mJw9TQR79H9hnJhuzU&s_tag=z4scstF7'

      opts = FirefoxOptions()
      opts.add_argument("--headless")
      driver = webdriver.Firefox(firefox_options=opts)
      driver.get(test_url)
      driver.implicitly_wait(30)

      for links in driver.find_element_by_xpath('//div[contains(@id, "listing-")]//a[contains(@href, "rooms")]'):
      listing_url = links.get_attribute('href')
      print(listing_url)

      driver.quit()


      I tried to change my code, another code is as bellow;
      (Error message is same as my first code.)



      from selenium import webdriver
      from selenium.webdriver import FirefoxOptions
      from selenium.webdriver.common.by import By
      from selenium.webdriver.support.ui import WebDriverWait
      from selenium.webdriver.support import expected_conditions as EC
      from selenium.common.exceptions import TimeoutException

      test_url = 'https://www.airbnb.jp/s/%E6%97%A5%E6%9C%AC%E6%B2%96%E7%B8%84%E7%9C%8C/homes?refinement_paths%5B%5D=%2Fhomes&query=%E6%97%A5%E6%9C%AC%E6%B2%96%E7%B8%84%E7%9C%8C&price_min=15000&allow_override%5B%5D=&checkin=2018-07-07&checkout=2018-07-08&place_id=ChIJ51ur7mJw9TQR79H9hnJhuzU&s_tag=z4scstF7'

      opts = FirefoxOptions()
      opts.add_argument("--headless")
      driver = webdriver.Firefox(firefox_options=opts)
      driver.get(test_url)
      driver.implicitly_wait(30)


      links = driver.find_element_by_xpath('//a[contains(@href, "rooms")]')
      for link in links:
      listing_url = link.get_attribute('href')
      print(listing_url)

      driver.quit()


      I am glad to you reply if you have a time.
      Thank you.










      share|improve this question















      This question already has an answer here:



      • TypeError: 'WebElement' object is not iterable error

        2 answers



      I would like to get URLs of Airbnb's listing pages by Python, selenium, firefox, however, my program doesn't work well.



      My error code is as bellow;



      Original exception was:
      Traceback (most recent call last):
      File "pages.py", line 19, in <module>
      for links in driver.find_element_by_xpath('//div[contains(@id, "listing-")]//a[contains(@href, "rooms")]'):
      TypeError: 'FirefoxWebElement' object is not iterable


      Here is my code!



      from selenium import webdriver
      from selenium.webdriver import FirefoxOptions
      from selenium.webdriver.common.by import By
      from selenium.webdriver.support.ui import WebDriverWait
      from selenium.webdriver.support import expected_conditions as EC
      from selenium.common.exceptions import TimeoutException

      test_url = 'https://www.airbnb.jp/s/%E6%97%A5%E6%9C%AC%E6%B2%96%E7%B8%84%E7%9C%8C/homes?refinement_paths%5B%5D=%2Fhomes&query=%E6%97%A5%E6%9C%AC%E6%B2%96%E7%B8%84%E7%9C%8C&price_min=15000&allow_override%5B%5D=&checkin=2018-07-07&checkout=2018-07-08&place_id=ChIJ51ur7mJw9TQR79H9hnJhuzU&s_tag=z4scstF7'

      opts = FirefoxOptions()
      opts.add_argument("--headless")
      driver = webdriver.Firefox(firefox_options=opts)
      driver.get(test_url)
      driver.implicitly_wait(30)

      for links in driver.find_element_by_xpath('//div[contains(@id, "listing-")]//a[contains(@href, "rooms")]'):
      listing_url = links.get_attribute('href')
      print(listing_url)

      driver.quit()


      I tried to change my code, another code is as bellow;
      (Error message is same as my first code.)



      from selenium import webdriver
      from selenium.webdriver import FirefoxOptions
      from selenium.webdriver.common.by import By
      from selenium.webdriver.support.ui import WebDriverWait
      from selenium.webdriver.support import expected_conditions as EC
      from selenium.common.exceptions import TimeoutException

      test_url = 'https://www.airbnb.jp/s/%E6%97%A5%E6%9C%AC%E6%B2%96%E7%B8%84%E7%9C%8C/homes?refinement_paths%5B%5D=%2Fhomes&query=%E6%97%A5%E6%9C%AC%E6%B2%96%E7%B8%84%E7%9C%8C&price_min=15000&allow_override%5B%5D=&checkin=2018-07-07&checkout=2018-07-08&place_id=ChIJ51ur7mJw9TQR79H9hnJhuzU&s_tag=z4scstF7'

      opts = FirefoxOptions()
      opts.add_argument("--headless")
      driver = webdriver.Firefox(firefox_options=opts)
      driver.get(test_url)
      driver.implicitly_wait(30)


      links = driver.find_element_by_xpath('//a[contains(@href, "rooms")]')
      for link in links:
      listing_url = link.get_attribute('href')
      print(listing_url)

      driver.quit()


      I am glad to you reply if you have a time.
      Thank you.





      This question already has an answer here:



      • TypeError: 'WebElement' object is not iterable error

        2 answers







      python python-3.x selenium xpath web-scraping






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Jun 17 '18 at 10:16









      gkzgkz

      65




      65




      marked as duplicate by Andersson, Corey Goldberg python
      Users with the  python badge can single-handedly close python questions as duplicates and reopen them as needed.

      StackExchange.ready(function()
      if (StackExchange.options.isMobile) return;

      $('.dupe-hammer-message-hover:not(.hover-bound)').each(function()
      var $hover = $(this).addClass('hover-bound'),
      $msg = $hover.siblings('.dupe-hammer-message');

      $hover.hover(
      function()
      $hover.showInfoMessage('',
      messageElement: $msg.clone().show(),
      transient: false,
      position: my: 'bottom left', at: 'top center', offsetTop: -7 ,
      dismissable: false,
      relativeToBody: true
      );
      ,
      function()
      StackExchange.helpers.removeMessages();

      );
      );
      );
      Jun 17 '18 at 16:28


      This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.









      marked as duplicate by Andersson, Corey Goldberg python
      Users with the  python badge can single-handedly close python questions as duplicates and reopen them as needed.

      StackExchange.ready(function()
      if (StackExchange.options.isMobile) return;

      $('.dupe-hammer-message-hover:not(.hover-bound)').each(function()
      var $hover = $(this).addClass('hover-bound'),
      $msg = $hover.siblings('.dupe-hammer-message');

      $hover.hover(
      function()
      $hover.showInfoMessage('',
      messageElement: $msg.clone().show(),
      transient: false,
      position: my: 'bottom left', at: 'top center', offsetTop: -7 ,
      dismissable: false,
      relativeToBody: true
      );
      ,
      function()
      StackExchange.helpers.removeMessages();

      );
      );
      );
      Jun 17 '18 at 16:28


      This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.
























          1 Answer
          1






          active

          oldest

          votes


















          4














          You need to use find_elements_by_xpath where return a list of elements



          Not find_element_by_xpath that returned only one element



          ...
          links = driver.find_elements_by_xpath('//div[contains(@id, "listing-")]//a[contains(@href, "rooms")]')
          for link in links:
          print(link.get_attribute('href')
          ...


          Output



          https://www.airbnb.jp/rooms/7793811?location=%E6%97%A5%E6%9C%AC%E6%B2%96%E7%B8%84%E7%9C%8C&check_in=2018-07-07&check_out=2018-07-08
          https://www.airbnb.jp/rooms/7793811?location=%E6%97%A5%E6%9C%AC%E6%B2%96%E7%B8%84%E7%9C%8C&check_in=2018-07-07&check_out=2018-07-08
          ...





          share|improve this answer































            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            4














            You need to use find_elements_by_xpath where return a list of elements



            Not find_element_by_xpath that returned only one element



            ...
            links = driver.find_elements_by_xpath('//div[contains(@id, "listing-")]//a[contains(@href, "rooms")]')
            for link in links:
            print(link.get_attribute('href')
            ...


            Output



            https://www.airbnb.jp/rooms/7793811?location=%E6%97%A5%E6%9C%AC%E6%B2%96%E7%B8%84%E7%9C%8C&check_in=2018-07-07&check_out=2018-07-08
            https://www.airbnb.jp/rooms/7793811?location=%E6%97%A5%E6%9C%AC%E6%B2%96%E7%B8%84%E7%9C%8C&check_in=2018-07-07&check_out=2018-07-08
            ...





            share|improve this answer





























              4














              You need to use find_elements_by_xpath where return a list of elements



              Not find_element_by_xpath that returned only one element



              ...
              links = driver.find_elements_by_xpath('//div[contains(@id, "listing-")]//a[contains(@href, "rooms")]')
              for link in links:
              print(link.get_attribute('href')
              ...


              Output



              https://www.airbnb.jp/rooms/7793811?location=%E6%97%A5%E6%9C%AC%E6%B2%96%E7%B8%84%E7%9C%8C&check_in=2018-07-07&check_out=2018-07-08
              https://www.airbnb.jp/rooms/7793811?location=%E6%97%A5%E6%9C%AC%E6%B2%96%E7%B8%84%E7%9C%8C&check_in=2018-07-07&check_out=2018-07-08
              ...





              share|improve this answer



























                4












                4








                4







                You need to use find_elements_by_xpath where return a list of elements



                Not find_element_by_xpath that returned only one element



                ...
                links = driver.find_elements_by_xpath('//div[contains(@id, "listing-")]//a[contains(@href, "rooms")]')
                for link in links:
                print(link.get_attribute('href')
                ...


                Output



                https://www.airbnb.jp/rooms/7793811?location=%E6%97%A5%E6%9C%AC%E6%B2%96%E7%B8%84%E7%9C%8C&check_in=2018-07-07&check_out=2018-07-08
                https://www.airbnb.jp/rooms/7793811?location=%E6%97%A5%E6%9C%AC%E6%B2%96%E7%B8%84%E7%9C%8C&check_in=2018-07-07&check_out=2018-07-08
                ...





                share|improve this answer















                You need to use find_elements_by_xpath where return a list of elements



                Not find_element_by_xpath that returned only one element



                ...
                links = driver.find_elements_by_xpath('//div[contains(@id, "listing-")]//a[contains(@href, "rooms")]')
                for link in links:
                print(link.get_attribute('href')
                ...


                Output



                https://www.airbnb.jp/rooms/7793811?location=%E6%97%A5%E6%9C%AC%E6%B2%96%E7%B8%84%E7%9C%8C&check_in=2018-07-07&check_out=2018-07-08
                https://www.airbnb.jp/rooms/7793811?location=%E6%97%A5%E6%9C%AC%E6%B2%96%E7%B8%84%E7%9C%8C&check_in=2018-07-07&check_out=2018-07-08
                ...






                share|improve this answer














                share|improve this answer



                share|improve this answer








                edited Jun 17 '18 at 10:26

























                answered Jun 17 '18 at 10:20









                Druta RuslanDruta Ruslan

                4,32721128




                4,32721128















                    Popular posts from this blog

                    AWS Lex not identifying response if by a variable The 2019 Stack Overflow Developer Survey Results Are In Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern) The Ask Question Wizard is Live! Data science time! April 2019 and salary with experienceEnforcing custom enumeration in AWS LEX for slot valuesHow to give response based on user response in Amazon Lex?Intercepting AWS Lambda Response to a AWS Lex QueryLex chat bot error: Reached second execution of fulfillment lambda on the same utteranceamazon lex showing invalid responseLambda response send back to Lex slot?Response card in Amazon lexAmazon Lex - Lambda response return HTML to botHow can I solve 424 (Failed Dependency) (python) obtained from Amazon lex?

                    Алба-Юлія

                    Захаров Федір Захарович