def enter_text_textbox(self, locator, text):
ele = self.driver.find_element(*locator)
try:
logging.info("# Entering text in Textbox.")
ele.clear()
ele.send_keys(text)
return True
except NoSuchElementException:
return False
这是方法enter_text_textbox,它接受定位符和一些文本作为参数。 我通过定位器是这样的: self.email_field =(通过XPATH,“ // input [@ id ='email']”)
当我尝试进入this(self.driver.find_element(* locator))方法时,它显示了
从图片开始,这些方法仅包含ID参数。
通过运行测试脚本(此处未显示),它可以很好地工作。 我想知道此方法如何知道此定位器是由XPATH还是ID或CSS制作的,即加星标的表达式如何工作?
答案 0 :(得分:1)
self.driver.find_element(*locator)
分解为位置参数。因此locator[0]
必须是xpath,而locator[1]
必须是另一个文本参数(显然是ID或CSS)
(当locator
具有适当数量的参数时)等效于:
self.driver.find_element(locator[0],locator[1])
注意:
由于这不是可变参数函数,因此这是一种不好的做法,而且还不清楚。
答案 1 :(得分:0)
您所显示的图像显示PyCharm,告诉您默认情况下该方法使用的内容。如果您只是调用find_element()
,它将使用By.ID
作为by
的值,并使用None
作为value
。正如让·弗朗索瓦·法布尔(Jean-FrançoisFabre)所说的,*
只是将元组分解为位置参数