我试图创建一个定义,允许我单击对象,而不考虑元素类型。为了实现这一点,我创建了一个包含我要运行的命令的变量。
def clickOnStaleElement(driver, objStrategy, element):
lhs, rhs = objStrategy.split(".", 1)
myCommand = "driver.find_element_by_"+rhs.lower()+"(\""+element+"\").click()"
我似乎无法确定如何执行存储在变量中的命令。我试过“driver.execute\u脚本()'但收到WebDriverException。尝试“exec()”、“eval()”导致文本挂起。我如何做到这一点?有更好的方法来实现这种行为吗?我意识到我是如何努力实现这种行为的,这可能不是理想的,所以我愿意用更好的方法来完成同样的任务。如果可能,我不希望为每个元素类型创建“if/then”语句。
您可以创建一个字典,它提供从字符串到函数的映射,然后执行简单的查找:
您可能希望有一个默认方法,或者为
rhs.lower()
与字典中的任何内容都不匹配的情况做好准备。在我会逐字地将其分解为每一个在waterver
rhs
is上都有自己的If语句。在同样在我看来,没有理由让你进去“???”???。为什么不把你真正想要的东西交给他?在
相关问题 更多 >
编程相关推荐