我将Selenium 2 / WebDriver与Python API结合使用,如下所示:
from selenium.webdriver.support import expected_conditions as EC
# code that causes an ajax query to be run
WebDriverWait(driver, 10).until( EC.presence_of_element_located( \
(By.CSS_SELECTOR, "div.some_result")));
我想等 要么 返回一个结果(div.some_result
) 或 “未找到”字符串。那可能吗?有点儿:
WebDriverWait(driver, 10).until( \
EC.presence_of_element_located( \
(By.CSS_SELECTOR, "div.some_result")) \
or
EC.presence_of_element_located( \
(By.CSS_SELECTOR, "div.no_result")) \
);
我知道我可以使用CSS选择器(div.no_result, div.some_result
)来做到这一点,但是有没有办法使用Selenium预期条件方法来做到这一点?
我这样做是这样的:
class AnyEc:
""" Use with WebDriverWait to combine expected_conditions
in an OR.
"""
def __init__(self, *args):
self.ecs = args
def __call__(self, driver):
for fn in self.ecs:
try:
if fn(driver): return True
except:
pass
然后这样称呼…
from selenium.webdriver.support import expected_conditions as EC
# ...
WebDriverWait(driver, 10).until( AnyEc(
EC.presence_of_element_located(
(By.CSS_SELECTOR, "div.some_result")),
EC.presence_of_element_located(
(By.CSS_SELECTOR, "div.no_result")) ))
显然,同样实现一个AllEc
类也是微不足道的。
Nb。的try:
块为奇数。我很困惑,因为有些EC返回true /
false,而另一些EC会为False抛出异常。异常是由WebDriverWait捕获的,所以我的AnyEc事情产生了奇怪的结果,因为第一个抛出异常的事件意味着AnyEc没有继续进行下一个测试。
问题内容: 我将Selenium 2 / WebDriver与Python API结合使用,如下所示: 我想等 要么 返回一个结果() 或 “未找到”字符串。那可能吗?有点儿: 我知道我可以使用CSS选择器()来做到这一点,但是有没有办法使用Selenium预期条件方法来做到这一点? 问题答案: 我这样做是这样的: 然后像这样… 显然,同样实现一个类也是微不足道的。 Nb。的块为奇数。我很困惑,因
Selenium提供了显式的等待功能来处理(例如)当您想要对尚未可单击的元素执行操作时的情况。 语法如下: 这告诉程序等待,直到某个元素(通过其ID定位)可以单击。 element_to_be_clickable()调用内部函数读取指定的参数。在这种情况下,它在DOM中搜索与ID:相对应的元素。 但是,我不能直接将对象传递到函数中,因为它在内部调用中失败。 在处理本身时,有没有一种方法可以使用这些
需要一些帮助。 我正试图登录Flipkart并通过selenium购买第一部Iphone。 然而,我被困在下面提到的页面 https://www.flipkart.com/apple-iphone-6.../p/itmen2yynt6bz3gg... 我尝试单击比较复选框、16GB按钮、立即购买按钮和添加到购物车按钮,但所有操作都无法定位错误。 任何帮助都将不胜感激。 提前感谢 我使用了隐式等待和
我找不到答案,我想了解我们为什么这样做,所以:为什么在创建自定义ExpectedConditions时,我们必须重写apply方法?这很可能是一些简单和基本的东西,但我就是搞不懂。 以下是我在网上找到的一个例子:
问题内容: 这是此问题的后续操作- 想创建一个表单填充器-java,jsp,html是否足够?。我反复在网站上填写表格(例如,预约私人牙医)。 1-循环。对于每次迭代,除“下拉框-状态”的值外,所有数据均相同。 例如。每次迭代中“文本框-名称”,“文本框-年龄”保持不变。但是,状态下拉列表会在迭代中更改为NY,TX,CA。 2-如果最后一页中出现某些文本,请执行一项操作(发送邮件)。 我该如何做s
问题内容: 在Python中编写selenium测试时,我习惯于使用Explicit Waits来等待页面加载,或等待元素可见或可点击等: 这里的关键概念是提供等待的 期望条件 ,有多种类型: 等等 与使用带有硬编码时间间隔的s 相比,使用期望条件使代码更清洁,更可靠。 现在,我们正在将端到端测试基础架构转换为很多。 是否有类似的量角器,因为在或 ?如果不是,显式等待in中条件的规范方法是什么?