def click(self, locator: Enum, timeout=10) -> None: """ 点击操作 :param locator:元素定位表达式 :return: None """ print(locator.value) # WebDriverWait(self.driver, timeout).until(EC.element_to_be_clickable(locator.value)) ele = self.find_element(locator=locator) if ele.is_enabled(): ele.click() logger.info('点击元素:{}, 元素描述:{}'.format(locator.value, locator)) else: logger.error('点击失败,开始截图') self.save_screenshot() raise Exception("元素不可点击") 如何在函数中,把ele = self.find_element(locator=locator)中的定位换成具体的定位
时间: 2024-03-03 14:52:17 浏览: 129
如果你想在函数中使用具体的定位,你可以将函数的参数 `locator` 直接替换为具体的定位表达式,例如:
```python
def click(self, locator: str, timeout=10) -> None:
"""
点击操作
:param locator: 元素定位表达式
:return: None
"""
ele = self.driver.find_element_by_css_selector(locator)
if ele.is_enabled():
ele.click()
logger.info('点击元素:{}'.format(locator))
else:
logger.error('点击失败,开始截图')
self.save_screenshot()
raise Exception("元素不可点击")
```
在这个示例中,我们将 `locator` 参数的类型从 `Enum` 替换为 `str`,并使用具体的定位方法 `self.driver.find_element_by_css_selector()` 来查找元素。你可以根据你的需求来选择适合的定位方法,比如 `find_element_by_id()`、`find_element_by_xpath()` 等等。
阅读全文