【自动化测试】WebDriver使用
from selenium import webdriver from selenium.webdriver.common.keys import Keys from bs4 import BeautifulSoup from selenium.webdriver.chrome.options import Options import time import selenium import random # from selenium.webdriver.common.desired_capabilities import DesiredCapabilities def driver_open(): # dcap = dict(DesiredCapabilities.PHANTOMJS) # dcap["phantomjs.page.settings.userAgent"] = (r"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3100.0 Safari/537.36") options = Options() options.add_argument('--log-level=3') driver = webdriver.Chrome(executable_path='E:\chromedriver\chromedriver.exe', chrome_options=options) return driver def next_windows(driver,current_window): window_handles = driver.window_handles for window_handle in window_handles: if current_window != window_handle: handleb = window_handle driver.switch_to.window(handleb) return driver def next_windows_handle(driver,current_window): window_handles = driver.window_handles for window_handle in window_handles: if current_window != window_handle: handleb = window_handle return handleb if __name__ == '__main__': learn_dict = {} driver = driver_open() driver.maximize_window() driver.implicitly_wait(10) # seconds # # Theoretical study theoretical_study_url = 'xxxxx' driver.get(theoretical_study_url) time.sleep(20) current_window = driver.current_window_handle print(current_window) # 浏览6篇文章 article = 6 elements = driver.find_elements_by_xpath('//span[contains(@class,"text")]') for element in elements: element.click() driver = next_windows(driver,current_window) client_height = driver.execute_script("return document.body.clientHeight;") # scroll_height = driver.execute_script("return document.body.scrollWidth;") # print(scroll_height) init_position = 0 while (client_height > init_position): init_position = init_position + 200 js_string = "window.scrollTo(0," + str(init_position) + ");" driver.execute_script(js_string) sleep_time = random.randint(2, 4) time.sleep(sleep_time) time.sleep(3) driver.close() driver.switch_to.window(current_window) article = article - 1 if(article == 0): break driver.get('xxxxxx') time.sleep(3) window_handles = driver.window_handles for window_handle in window_handles: current_window = window_handle driver.switch_to.window(current_window) # 浏览6个视频 videos_count = 6 videos = driver.find_elements_by_xpath('//div[contains(@class,"innerPic")]') for video in videos: driver.switch_to.window(current_window) video.click() driver = next_windows(driver, current_window) js_string = "window.scrollTo(0,400);" driver.execute_script(js_string) time_sleep = random.randint(10,50) time.sleep(time_sleep) driver.close() videos_count = videos_count - 1 if(videos_count == 0): break driver.quit()