
def waitForElement(self,elementname,expectedCondition,searchBy)
哪里:
elementname – 我要查找的元素的名称.那可能是ID,name,xpath,CSS等……
expectedCondition – 这是设置Selenium预期条件的地方.这可以是:element_to_be_clickable,visibility_of_element_located等…
上面的函数在内部实现了标准的Selenium webdriverwait,如下所示:
try: if expectedCondition == "element_to_be_clickable": element = webdriverwait(self.driver,defaultWait).until(EC.element_to_be_clickable((searchBy,elementname))) elif expectedCondition == "visibility_of_element_located": element = webdriverwait(self.driver,defaultWait).until(EC.visibility_of_element_located((searchBy,elementname)))
一切都很好,但我将searchBy作为参数传递有点麻烦.提醒一下,searchBy可以是以下之一:
By.IDBy.nameBy.CLASS_name...
当我从主代码中调用这个包装器函数时,我用下面的代码执行:
self.waitForElement("elementname","element_to_be_clickable","By.name","test") 因此所有参数都作为字符串传递,除了searchBy部分之外的所有内容都很好.
所以我的问题是:如何将By.X部分作为参数传递给我的函数?
希望我能很好地描述我的情况.如果我不是,我会很乐意澄清.
def waitForElement(self,searchBy): try: if expectedCondition == "element_to_be_clickable": element = webdriverwait(self.driver,self.defaultWait).until(EC.element_to_be_clickable((getattr(By,searchBy),elementname))) elif expectedCondition == "visibility_of_element_located": element = webdriverwait(self.driver,self.defaultWait).until(EC.visibility_of_element_located((getattr(By,elementname))) . . .
所以它可以像这样调用:
self.waitForElement("elementname","name") 总结 以上是内存溢出为你收集整理的包装Selenium“预期条件”Python全部内容,希望文章能够帮你解决包装Selenium“预期条件”Python所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)