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")