def __call__(self, ignored): if self.elements != None: if type(self.elements) == list: self.elems = [ element for element in self.elements if EC._element_if_visible(element) ] if len(self.elems) > 0: self.elem = self.elems[0] return self.elem else: self.elem = EC._element_if_visible(self.elements) return self.elem elif self.locators_list != None and self.element_name != None: for key, val in self.locators_list.items(): if key == self.element_name: if val[0] == 'Finds': self.elems = [ element for element in Driver.get().find_elements( val[1], val[2]) if EC._element_if_visible(element) ] if len(self.elems) > 0: self.elem = self.elems[0] return self.elem elif val[0] == 'Find': self.elem = EC._element_if_visible( Driver.get().find_element(val[1], val[2])) return self.elem else: pass
def __call__(self, driver): try: if isinstance(self.locator, WebElement): return _element_if_visible(self.locator) return _element_if_visible(_find_element(driver, self.locator)) except StaleElementReferenceException: return False
def wait_for_resultpage_to_be_loaded(self): try: wait = WebDriverWait(self.driver, 10) wait.until( expected_conditions._element_if_visible(Locators.x_rent_btn)) finally: return False
def __call__(self, driver): elements = [ element for element in EC._find_elements(driver, self.locator) if EC._element_if_visible(element) ] return elements if len(elements) == 2 else False
def find_visible_element(self, *loc): try: ele = WebDriverWait(self.driver, 2).until(EC._element_if_visible(loc)) return ele except TimeoutError as e: logger.info('元素不可见' + str(loc)) raise e
def wait_for_homepage_to_be_loaded(self): try: wait = WebDriverWait(self.driver, 10) wait.until( expected_conditions._element_if_visible( Locators.id_google_logo)) finally: return False
def __call__(self, driver): js = """var components = Ext.ComponentQuery.query('%s') return components.length && components[0].id""" % ( self.locator) print js id = driver.execute_script(js) locator = By.CSS_SELECTOR, '#%s' % id return _element_if_visible(_find_element(driver, locator))
def __call__(self, driver): try: elements = _find_elements(driver, self.locator) visible_elements = [] for e in elements: element_visible = _element_if_visible(e) if element_visible: visible_elements.append(element_visible) return visible_elements if len(visible_elements) > 0 and len( visible_elements) == len(elements) else False except StaleElementReferenceException: return False
def __call__(self, driver): try: element = _element_if_visible(_find_element(driver, self.locator)) if element: location = element.location sleep(.2) if element.location == location: return element else: return False except NoSuchElementException: return False
def __call__(self, browser): try: all_elements_are_visible = True for locator in self.locators: el = EC._find_element(browser, locator) is_visible = EC._element_if_visible(el) if not is_visible: all_elements_are_visible = False break return all_elements_are_visible except StaleElementReferenceException: return False
def __call__(self, driver): elements = [element for element in EC._find_elements(driver, self.locator) if EC._element_if_visible(element)] return elements if len(elements) == 2 else False
from selenium import webdriver from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.support.wait import WebDriverWait driver = webdriver.Chrome() driver.get("http://localhost/index.php?m=user&c=public&a=login") # 4.输入用户名和密码 driver.find_element_by_id("username").send_keys("yaonan") driver.find_element_by_id("password").send_keys("123456") # 5.点击登录按钮 driver.find_element_by_class_name("login_btn").click() #WebDriverWait(driver,20,0.5).until(expected_conditions.) WebDriverWait(driver, 20, 0.5).until( EC._element_if_visible(driver.find_element_by_link_text("进入商城购物"))) driver.find_element_by_link_text("进入商城购物").click()
def __call__(self, ignored): return not _element_if_visible(self.element)
def __call__(self, driver): try: child_element = self.parent.find_element(*self.locator) return _element_if_visible(child_element) except StaleElementReferenceException: return False
def __call__(self, driver): try: return EC._element_if_visible(get_page_element(self.element_name)) except StaleElementReferenceException: return False
def __call__(self, ignored): return not _element_if_visible(self.element)