包装Selenium“预期条件”Python

包装Selenium“预期条件”Python,第1张

概述我正在尝试使用自定义函数创建自己的Selenium类,以便测试脚本在某些情况下会变得更直观和更健壮,至少我的口味.我目前的任务之一是包装所有Selenium预期条件(描述为 here),以便最终我将拥有一个看起来像这样的函数: def waitForElement(self, elementName, expectedCondition, searchBy) 哪里: elementName – 我 我正在尝试使用自定义函数创建自己的Selenium类,以便测试脚本在某些情况下会变得更直观和更健壮,至少我的口味.我目前的任务之一是包装所有Selenium预期条件(描述为 here),以便最终我将拥有一个看起来像这样的函数:

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部分作为参数传递给我的函数?
希望我能很好地描述我的情况.如果我不是,我会很乐意澄清.

解决方法 在询问了 @L_419_1@问题之后,我最终能够解决这个问题.因此,为了获得所需的功能,上述方法将如下所示:

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所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1197148.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-03
下一篇2022-06-03

发表评论

登录后才能评论

评论列表(0条)

    保存