# find_element()在selenium\webdriver.py 下deffind_element(self, by=By.ID, value: Optional[str]=None)-> WebElement:ifisinstance(by, RelativeBy):
elements = self.find_elements(by=by, value=value)ifnot elements:raise NoSuchElementException(f"Cannot locate relative element with: {by.root}")return elements[0]if by == By.ID:
by = By.CSS_SELECTOR
value =f'[id="{value}"]'elif by == By.CLASS_NAME:
by = By.CSS_SELECTOR
value =f".{value}"elif by == By.NAME:
by = By.CSS_SELECTOR
value =f'[name="{value}"]'elif by == By.ALT:#按着上面的代码增加一个Alt
by = By.CSS_SELECTOR #每种定位器都是在CSS_SELECTOR基础上建立的
value =f'[alt="{value}"]'#按着属性名添加一种定位形式return self.execute(Command.FIND_ELEMENT,{"using": by,"value": value})["value"]
还有记得要by.py下添加属性名
classBy:"""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"
ALT ="alt"
嫌麻烦也可以改成字符串 by==“xxx”
elif by == “xxx”:#属性名
by = By.CSS_SELECTOR #每种定位器都是在CSS_SELECTOR基础上建立的
value =f'[xxx="{value}"]'#按着属性名添加一种定位形式