我应该为Selenium的By.XPATH导入什么?



Selenium的新版本没有任何旧方法,如.find_element_by_xpath(),但它引入了新的fabrique方法.find_element(By.XPATH, searched_string)。以下是文档中的示例:

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

但它不起作用,因为没有定义">By"。我找不到要导入什么以使用此模式的示例。在Java中它是:

import org.openqa.selenium.By;

我应该在Python中做什么?

您必须导入类By

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

硒.webdriver.common.by

根据By实施文件:

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"

因此,当您使用By时,您必须导入:

from selenium.webdriver.common.by import By

用法

  • 对于CLASS_NAME:

    vegetable = driver.find_element(By.CLASS_NAME, "tomatoes")
    
  • 对于XPATH

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

最新更新