Finding element with explicit wait using selenium webdriver in python

25,904

If you use By.LINK_TEXT, there should be a link with exactly that text: Followers, but you have Followers 43,799.

In your case, you should use By.PARTIAL_LINK_TEXT instead:

wait.until(EC.presence_of_element_located((By.PARTIAL_LINK_TEXT, 'Followers')))

UPDATE Here's working example:

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

driver = webdriver.Chrome()  # CHANGEME
driver.get('http://www.quora.com/Kevin-Rose')
element = WebDriverWait(driver, 2).until(
    EC.presence_of_element_located((By.PARTIAL_LINK_TEXT, "Followers"))
)
element.click()
Share:
25,904
Siddhesh
Author by

Siddhesh

:)

Updated on January 24, 2022

Comments

  • Siddhesh
    Siddhesh over 2 years

    I am trying to find the element with the link text, I am using following code

    handle = driver.window_handles
    #handle for windows
    driver.switch_to.window(handle[1])
    #switching to new window
    link = wait.until(EC.presence_of_element_located((By.LINK_TEXT, "Followers ")))
    

    And I am getting following traceback

    Traceback (most recent call last):
    File "<pyshell#28>", line 1, in <module>
    link = wait.until(EC.presence_of_element_located((By.LINK_TEXT, "Followers ")))
    File "C:\Python27\lib\site-packages\selenium\webdriver\support\wait.py", line 71, in until
    raise TimeoutException(message)
    TimeoutException: Message: ''
    

    HTML of the element I am trying to select is

    <a href="/Kevin-Rose/followers">Followers <span class="profile_count">43,799</span></a>
    

    How can I solve this problem??

  • Siddhesh
    Siddhesh over 9 years
    It gave the same error. I tried finding different elements using ids and classes its giving same error. I also downloaded the html source of the page to make sure I am on the same page. This is the link to the page "quora.com/Kevin-Rose" I am trying to click on followers link.
  • falsetru
    falsetru over 9 years
    @Siddhesh, I added a working example. The problem was the trailing space. Please check it out.
  • altabq
    altabq over 8 years
    How does one know what arguments exist to go after By.? I have a hard time finding documentation on that..
  • altabq
    altabq over 8 years
    Thanks a lot! That was quick :)
  • Danbardo
    Danbardo over 3 years
    For anyone wondering how to find the By. options. If you have PyCharm or something similar, import the package at the top of your script and literally write By. and you will see all the options appear in the dropdown. I know it's super simple and obvious, but I went Googling before I bothered to check.