tony老师:请问一下同样的元素定位值,用封装的方法定位不到,用框架By的方式可以定位到?
来源:3-6 页面对象开发的第二种实现方式

慕工程8594684
2022-02-16
#引用封装的element方法
self.element(self.phone).send_keys(phone)
sleep(1)
self.driver.find_element(By.CLASS_NAME,‘next-active’).click()
# self.element(self.nextBtn).click()
如:
self.element(self.phone).send_keys(phone)----可以定位成功;
self.driver.find_element(By.CLASS_NAME,‘next-active’).click()----可以定位成功
self.element(self.nextBtn).click()-----定位失败
重定义方法封装:
#实现页面单个元素定位
def element(self,loc:tuple):
""“
定位元素的方法
”""
return self.driver.find_element(*loc)
报错如下:
in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.InvalidArgumentException: Message: invalid
argument: invalid locator
(Session info: chrome=98.0.4758.102)
![
1回答
-
托尼老师
2022-02-17
从控制台堆栈来看,是元素的定位方式错了。
检查一下那几个报错方法里定义的实例属性,例如self.nextBtn。
如果还不行,把他们的定义截图一下。
032022-02-21
相似问题