简体   繁体   中英

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?

你必须By导入类

from selenium.webdriver.common.by import By
from selenium.webdriver.common.by import By 

selenium.webdriver.common.by

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 selenium.webdriver.common.by import By

Usage

  • For CLASS_NAME :

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

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM