I'm trying to complete the basic python Selenium demo (https://selenium-python.readthedocs.io/getting-started.html) but I'm attempting to do that same procedure on https://www.ncbi.nlm.nih.gov/. However, it seems to be returning an empty list/it can't find the element. I tried to use the class_name but that also gave me an error because the class name has a space in it.
elem = driver.find_elements_by_class_name("typeahead tt-hint")
elem2 = driver.find_elements_by_xpath('//*[@id="main_content"]/section[1]/div/div[2]/div/form/div/span/input[1]')
Also, when doing the tutorial and trying the find_elements command on the different options
<input id="id-search-field" name="q" type="search" role="textbox" class="search-field" placeholder="Search" value="" tabindex="1">
I don't quite understand why I seemed to get a type
<class 'selenium.webdriver.remote.webelement.WebElement'>
if I used elem = driver.find_element_by_name('q')
and a <type 'list'>
if I used anything else (xpath, id, class_name, etc).
Thanks!
class_name=typeahead
or withid=main_content
. Also, you can try locating with justclass=typeahead
instead oftypeahead tt-hint
. To your second question, you get WebElement when you usefind_element
and a list when you usefind_elements
.