我刚接触lambda,不知道是否有人能给我一些提示,如何将C#return语句翻译成python,而且这是可能的。在
WebDrivrWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(5));
var imagesLink = wait.Until(d =>
{
var elements = driver.FindElements(By.ClassName("kl"));
if (elements.Count > 0)
return elements[0];
return null;
});
imagesLink.Click();
在FB上运行测试时,简单的selenium explicit waits对我来说不起作用,而且几乎所有时候我都收到超时错误。 到目前为止,我已经找到了wait赋值函数,但是不知道如何在lambda中创建带有返回值的变量和if语句。有什么好消息吗?在
这是可能的(但是丑陋、令人困惑和不必要的),不需要调用
find_elements
两次,使用嵌套lambda:因此,对于您的硒示例,您可以做如下操作:
^{pr2}$但是,由于您只是尝试返回第一个元素,因此您应该能够更简单地使用selenium 2expected conditions API:
嵌套lambda是一个有趣的技巧,但我强烈建议您不要在实际代码中使用它们!在
Python lambda函数非常有限,只能包含一个表达式。虽然从理论上讲,可以将lambda作为一个单独的表达式写在C示例中,因为您不能执行赋值,所以必须调用
driver.FindElements
两次,这是冗长且低效的。相反,请使用命名函数。在相关问题 更多 >
编程相关推荐