nor*_*tpy 8 python selenium-webdriver
我有一个与DOM上的几个元素进行交互的页面对象。如果我WebDriverWait
在页面对象初始化中创建一个对象作为实例成员,是否可以将其用于所有等待?
或者,如果我想等待两个单独的元素,最好有两个WebDriverWait
s?
我遇到了一些奇怪TimeoutException
的问题,我想知道可能是这样的。喜欢:
class MyPage(object):
def __init__(self, driver):
self.driver = driver
self.wait = WebDriverWait(driver, 10)
def get_search_box(self):
return self.wait.until(EC.presence_of_element_located('srch'))
def get_search_btn(self):
return self.wait.until(EC.presence_of_element_located('btn'))
Run Code Online (Sandbox Code Playgroud)
与:
def get_search_btn(self):
wait = WebDriverWait(self.driver, 10)
return wait.until(EC.presence_of_element_located('btn'))
Run Code Online (Sandbox Code Playgroud)
我想您需要的是一个可以根据需要重用的函数。例如看一下下面的函数:
def wait_for_element_to_be_visible(self, *locator):
"""Wait for an element to become visible"""
self.selenium.implicitly_wait(0)
try:
WebDriverWait(self.selenium, self.timeout).until(
lambda s: self._selenium_root.find_element(*locator).is_displayed())
except TimeoutException:
Assert.fail(TimeoutException)
finally:
self.selenium.implicitly_wait(self.testsetup.default_implicit_wait)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
912 次 |
最近记录: |