from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.support.ui import WebDriverWait def check_navigator(driver): """检查navigator属性""" script = "return window.navigator.webdriver" return driver.execute_script(script) def until_wait( driver, *, xpath=None, classname=None, text=None, timeout=None ): """ 显示等待页面加载,否则抛出TimeoutException :param driver: 浏览器驱动 :param xpath: xpath规则,页面等待特征 :param classname: class属性名称,页面等待特征 :param text: 期待的文本 :param timeout: 超时时间 :return: """ _timeout = (timeout or 60) wait = WebDriverWait(driver, _timeout, 0.2) if xpath is not None: locator = (By.XPATH, xpath) if text is not None: wait.until(EC.text_to_be_present_in_element(locator, text)) else: wait.until(EC.presence_of_element_located(locator)) elif classname is not None: locator = (By.CLASS_NAME, classname) if text is not None: wait.until(EC.text_to_be_present_in_element(locator, text)) else: wait.until(EC.presence_of_element_located(locator)) def new_window(driver): """新的窗口""" driver.execute_script('window.open();') handles = driver.window_handles driver.switch_to.window(handles[-1]) def get_user_agent(driver): return driver.execute_script("return navigator.userAgent;") def get_title(driver): return driver.execute_script('return document.title')