Selenium By.XPATH – what to import?


New Selenium has no old metods like .find_element_by_xpath() but it introduced new fabrique method .find_element(By.XPATH, searched_string). Here is the example from docs:

vegetable = driver.find_element(By.CLASS_NAME, "tomatoes")

But it does not work, bc ‘By‘ is not defined. I can’t find the example what to import to use this pattern. In Java it is:

import org.openqa.selenium.By;

And what to do in Python?


As per the documentation of the By implementation:

class By(object):
    Set of supported locator strategies.

    ID = "id"
    XPATH = "xpath"
    LINK_TEXT = "link text"
    PARTIAL_LINK_TEXT = "partial link text"
    NAME = "name"
    TAG_NAME = "tag name"
    CLASS_NAME = "class name"
    CSS_SELECTOR = "css selector"

So when you use By you have to import:

from import By



    vegetable = driver.find_element(By.CLASS_NAME, "tomatoes")
  • For XPATH:

    vegetable = driver.find_element(By.XPATH, "//element_xpath")

Answered By – undetected Selenium

This Answer collected from stackoverflow, is licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0

Leave a Reply

(*) Required, Your email will not be published