def _set_driver(self): driver = None if self._browser == 'chrome': try: if self._config.is_headless: chrome_options = webdriver.ChromeOptions() chrome_options.add_argument('headless') driver = webdriver.Chrome(options=chrome_options) else: driver = webdriver.Chrome() except WebDriverException as e: if self._is_debug: print('\nPlease note: \n', e) path = self._get_driver_path() print('PATH: {}'.format(path)) if self._is_debug: print('\nTrying to look for a \'chromedriver\' under:\n{}'.format(path)) driver = webdriver.Chrome(executable_path=path) if self._browser == 'mozilla': try: if self._config.is_headless: # Set the MOZ_HEADLESS environment variable which casues Firefox to start in headless mode. # Source: https://intoli.com/blog/running-selenium-with-headless-firefox/ os.environ['MOZ_HEADLESS'] = '1' driver = webdriver.Firefox() else: driver = webdriver.Firefox() except WebDriverException as e: if self._is_debug: print('\nPlease note:', e.msg) path = self._get_driver_path() if self._is_debug: print('\nTrying to look for a \'geckodriver\' under:\n{}'.format(path)) driver = webdriver.Firefox(executable_path=path) if self._browser == 'edge': ''' Purpose: Probe the underlying platform’s hardware, operating system, and interpreter version information. print('Version tuple:', platform.python_version_tuple()) print('Compiler :', platform.python_compiler()) print('Build :', platform.python_build()) ''' if sum(int(i) for i in platform.python_version_tuple()) > 13: if self._is_debug: print('\nVersion:', platform.python_version()) print('WebDriver is now a Feature On Demand') print('For more info please check: {}'.format( 'https://blogs.windows.com/msedgedev/2018/06/14/' 'webdriver-w3c-recommendation-feature-on-demand/#Rg8g2hRfjBQQVRXy.97\n')) driver = webdriver.Edge() else: path = self._get_driver_path() if self._is_debug: print('\nTrying to look for a \'MicrosoftWebDriver\' under:\n{}'.format(path)) driver = webdriver.Edge(executable_path=path) return driver
# coding = utf-8 import requests from time import sleep from selenium import webdriver from PIL import Image import pytesseract d = webdriver.Edge() def run_url(): url = 'http://www.heibanke.com/accounts/login/?next=/lesson/crawler_ex02/' d.get(url) sleep(1) d.find_element_by_id("id_register").click() def run_url_zc(): #注册窗口 sleep(1) nic = "qnizenmhuis" d.find_element_by_id("id_username").send_keys(nic) #点击昵称输入 sleep(1) d.find_element_by_id("id_email").send_keys("*****@*****.**") #点击邮件输入 sleep(1) mima = '123456' d.find_element_by_id("id_password").send_keys(mima) #点击密码输入 sleep(1) d.find_element_by_id("id_re_password").send_keys(mima) #点击重复密码输入
def main(channel, page): driver = webdriver.Edge() driver.get('https://www.qingting.fm') driver.delete_all_cookies() cookies = load_cookies() for cookie in cookies: try: driver.add_cookie(cookie) except BaseException as e: # logger.error('unable to set cookie : {0} cause {1}'.format(cookie, e)) raise e driver.get('https://www.qingting.fm/channels/{}'.format(channel)) dev = Edge_dev.Edge_dev() dev.prepare() app_element = driver.find_element(By.ID, 'app') print(app_element.location) title_element = app_element.find_element( By.XPATH, 'div[1]/div[2]/div[1]/div[1]/div[1]/div[1]/div[3]/h1') title = title_element.text print(title) dl = downloader.Downloader(title) dl.start() page_element = app_element.find_element( By.XPATH, 'div[1]/div[2]/div[1]/div[1]/div[2]/div[1]/div[3]/div[1]/ul') last_page_elment = page_element.find_element(By.XPATH, 'li[last()-1]') total_page = int(last_page_elment.text) current_page = page while current_page <= total_page: driver.get('https://www.qingting.fm/channels/{}/{}'.format( channel, current_page)) driver.switch_to.default_content() time.sleep(5) app_element = driver.find_element(By.ID, 'app') page_element = app_element.find_element( By.XPATH, 'div[1]/div[2]/div[1]/div[1]/div[2]/div[1]/div[3]/div[1]/ul') # next_page_element = page_element.find_element(By.XPATH, 'li[last()]/a') ul_element = app_element.find_element( By.XPATH, 'div[1]/div[2]/div[1]/div[1]/div[2]/div[1]/ul') li_list = ul_element.find_elements(By.TAG_NAME, 'li') for li in li_list: # print(li.text) b = li.find_element(By.XPATH, 'span/div/button[1]') artical_element = li.find_element(By.XPATH, 'span/a/p') artical = artical_element.text timelong_element = li.find_element(By.XPATH, 'span[2]') timelong = timelong_element.text b.click() # time.sleep(5) _url = dev.getUrl() url = {} url['url'] = _url url['title'] = artical url['timelong'] = timelong.replace(':', '-') time.sleep(1) print(url) dl.download(url) driver.execute_script("window.scrollBy(0, 50)") time.sleep(5) current_page += 1 # next_page_element.click() dl.end()
from selenium import webdriver from selenium.webdriver.common.keys import Keys from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC import time PATH = "C:/Program Files (x86)/msedgedriver.exe" driver = webdriver.Edge(PATH) #Log in in github account driver.get("https://github.com/login") username = driver.find_element_by_id("login_field") username.click() username.send_keys("your username or email") password = driver.find_element_by_id("password") password.click() password.send_keys("your password") password.send_keys(Keys.RETURN) #create a new repository driver.get("https://github.com/new") new_repo_name = driver.find_element_by_id("repository_name") name = str(input("Give the name of the repository:")) new_repo_name.send_keys(name) add_readme = driver.find_element_by_id("repository_auto_init") add_readme.click() create_repo_button = driver.find_element_by_css_selector( "button.first-in-line") create_repo_button.submit()
def get_Edge_driver(webdriver_executable="msedgedriver"): current_dir = Path(__file__).resolve().parent edge_web_driver_path = "{0}/{1}".format(current_dir, webdriver_executable) print(edge_web_driver_path) return webdriver.Edge(edge_web_driver_path, port=9515)
# 제목 : 중고나라 중고상품 (이미지, 제목, 가격 ) 크롤링 소스 # 작성자 : 전규빈 from selenium import webdriver from selenium.webdriver import ActionChains from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions from selenium.webdriver.support.ui import WebDriverWait import os from os import path import time import requests import io from PIL import Image with webdriver.Edge('msedgedriver.exe') as driver: driver.get(f"https://m.joongna.com/search-category?category=7") folder_name = "train_image" if not path.isdir(folder_name): os.mkdir(folder_name) element_number = 1 file_list = os.listdir(folder_name) file_number = len(file_list) + 1 wait = WebDriverWait(driver, 1) while True: try: try: title_locator = ( By.CSS_SELECTOR,
#Disable website launching #options.add_argument("headless") #Launching the browser browser_option = option["browser"] browser = None if browser_option == "chrome": #Webdriver options options = webdriver.ChromeOptions() options.add_experimental_option("excludeSwitches", ["enable-logging"]) browser = webdriver.Chrome(options=options, executable_path="./chromedriver.exe") elif browser_option == "edge": browser = webdriver.Edge(executable_path="./msedgedriver.exe", ) elif browser_option == "firefox": profile = webdriver.FirefoxProfile() profile.set_preference("useAutomationExtension", False) profile.update_preferences() desired = DesiredCapabilities.FIREFOX browser = webdriver.Firefox(executable_path="./geckodriver.exe", firefox_profile=profile, service_log_path=os.devnull, desired_capabilities=desired) else: logging.error(f"browser {browser_option} is not in the list") exit()
from selenium import webdriver from selenium.webdriver.common.by import By import time import XLUtils_16 # all excel code is present driver = webdriver.Edge(executable_path="../../../Driver/msedgedriver.exe") driver.implicitly_wait(10) driver.maximize_window() driver.get("http://practice.automationtesting.in/my-account/") # get login data from excel file ExcelPath = r"C:\Users\rohit\PycharmProjects\Selenium_Automation\Practice\DataDrivenTesting-Excel_16\DataDrivenTest_16.3\DataDrivenTest_16.3.xlsx" rows = XLUtils_16.getRowCount(ExcelPath, "Sheet1") columns = XLUtils_16.getColumnCount(ExcelPath, "Sheet1") print(rows, columns) for r in range(2, rows + 1): userName = XLUtils_16.readData(ExcelPath, "Sheet1", r, 1) passWord = XLUtils_16.readData(ExcelPath, "Sheet1", r, 2) print(f"{userName}=={passWord}") driver.find_element(By.ID, 'username').send_keys(userName) driver.find_element(By.ID, 'password').send_keys(passWord) driver.find_element(By.NAME, 'login').click() try: loginDashboard = driver.find_element( By.XPATH,
import time from selenium import webdriver driver = webdriver.Edge(executable_path="P:\Webdrivers\msedgedriver") mobile_number = input("pleae enter your phone number") def flipkart_login(driver): driver.get("https://www.flipkart.com/") driver.maximize_window() driver.find_element_by_xpath( "/html/body/div[2]/div/div/div/div/div[2]/div/form/div[1]/input" ).send_keys(mobile_number) driver.find_element_by_xpath( "/html/body/div[2]/div/div/div/div/div[2]/div/form/div[4]/button" ).click() flipkart_login(driver) time.sleep(2) def otp_length(driver, otp): for x in range(1, 7): driver.find_element_by_xpath( "/html/body/div[2]/div/div/div/div/div[2]/div/div/form/div/div[" + str(x) + "]/input").send_keys(otp(x - 1))
from selenium import webdriver logger = logging.getLogger('simple_example') logger.setLevel(logging.INFO) logging.basicConfig(filename="selenium_1_1.log", format='%(asctime)s %(message)s', filemode='w') ch = logging.StreamHandler() ch.setLevel(logging.DEBUG) formatter = logging.Formatter( '%(asctime)s - %(name)s - %(levelname)s - %(message)s') ch.setFormatter(formatter) logger.addHandler(ch) driver = webdriver.Edge( executable_path='E:\downloads\edgedriver_win64\msedgedriver.exe') # driverFirefox = webdriver.Firefox(executable_path='E:\downloads\geckodriver-v0.28.0-win64\geckodriver.exe') # driverChrome = webdriver.Chrome(executable_path='E:\downloads\chromedriver_win32\chromedriver.exe') logger.info('Przechodze na strone kurnik') driver.get('https://www.kurnik.pl/') temp = driver.find_element_by_partial_link_text('zaloguj') logger.info('Przechodze na strone logowania') temp.click() temp = driver.find_element_by_xpath("//a[@class='lbut bxpad ttup']") logger.info('Przechodze na strone rejestracji') temp.click() profilName = 'tau1234pj' temp = driver.find_element_by_name('username')
if len(filePath): Listfilename=[] for fliePathIndex in filePath: (tempfilePath, tempfilename) = os.path.split(fliePathIndex) (tempfilename, tempextension) = os.path.splitext(tempfilename) Listfilename.append(tempfilename) ''' open the browser ''' base_url = "https://xueshu.baidu.com/" driver_url = r"C:\Program Files (x86)\Microsoft\Edge\Application\msedgedriver.exe" result = [] dri = webdriver.Edge(executable_path=driver_url) dri.get(base_url) sleep(2) ''' get the quote ''' for tempListfilename in Listfilename: dri.find_element_by_xpath('//*[@id="kw"]').send_keys(tempListfilename) sleep(2) dri.find_element_by_xpath('//*[@id="su"]').click() sleep(2) if isElementExist(dri,'//*[@id="toolbar"]/span'): dri.find_element_by_xpath('//*[@id="1"]/div[2]/div/a[2]').click() sleep(2)
from selenium import webdriver from time import sleep from selenium.webdriver import ActionChains broser = webdriver.Edge(executable_path='./爬虫/6.selenium动态加载数据/msedgedriver') broser.get('https://www.runoob.com/try/try.php?filename=jqueryui-api-droppable') # 如果定位的标签是存在于iframe标签之中的则必须通过如下操作再进行标签定位 broser.switch_to.frame('iframeResult') # 切换浏览器标签定位的作用域 div = broser.find_element_by_id('draggable') # 动作链 action = ActionChains(broser) for i in range(5): # 点击长按指定的标签 action.click_and_hold(div) # perform()立即执行动作链操作 action.move_by_offset(17, 0).perform() sleep(1) # 释放动作链 action.release() print(div)
class Spider(): # headers = { # "User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 6.0 x64; en-US; rv:1.9pre) Gecko/2008072421 Minefield/3.0.2pre"} count = 1 driver = webdriver.Edge( executable_path= 'C:\Program Files (x86)\Microsoft\Edge\Application\msedgedriver.exe') driver.get('https://www.icourse163.org/channel/2001.htm') driver.maximize_window() def getInfo(self): print("Page", self.count) self.count += 1 courses = self.driver.find_elements_by_xpath( "//div[@class='_1gBJC']//div[@class='_2mbYw']//div[@class='_3KiL7']" ) titles = self.driver.find_elements_by_xpath( "//div[@class='_1gBJC']/div/div//div[@class='_1Bfx4']/div//h3" ) #课程标题 schools = self.driver.find_elements_by_xpath( "//div[@class='_1gBJC']/div/div//div[@class='_1Bfx4']/div//p") #学校 teachers = self.driver.find_elements_by_xpath( "//div[@class='_1gBJC']/div/div//div[@class='_1Bfx4']/div//div[@class='_1Zkj9']" ) #授课老师 for i in range(len(courses)): title = titles[i].text school = schools[i].text teacher = teachers[i].text course = courses[i] webdriver.ActionChains( self.driver).move_to_element(course).click(course).perform() time.sleep(3) # print(self.driver.current_url) handles = self.driver.window_handles self.driver.switch_to.window(handles[1]) # self.getCourseInfo() note = self.driver.find_element_by_class_name( "course-heading-intro_intro") # print(title,school,teacher,note.text) self.writeMySQL(title, school, teacher, note.text) self.driver.close() handles = self.driver.window_handles self.driver.switch_to.window(handles[0]) self.nextPage() def getCourseInfo(self): try: note = self.driver.find_element_by_class_name( "course-heading-intro_intro") print(note.text) except: notes = None print("err") def nextPage(self): try: GoButton = self.driver.find_element_by_xpath( "//div[@class='_1lKzE']//a[@class='_3YiUU '][last()]") GoButton.click() time.sleep(3) self.getInfo() except: print("err") time.sleep(3) self.getInfo() def initDatabase(self): try: serverName = "127.0.0.1" # userName = "******" passWord = "******" self.con = pymysql.connect(host=serverName, port=3307, user="******", password=passWord, database="Mooc", charset="utf8") self.cursor = self.con.cursor() self.cursor.execute("use Mooc") print("init DB over") self.cursor.execute("select * from mooc") except: print("init err") def writeMySQL(self, title, school, teacher, note): try: print(title, school, teacher, note) self.cursor.execute( "insert mooc(title,school,teacher,note) values (%s,%s,%s,%s)", (title, school, teacher, note)) self.con.commit() except Exception as err: print(err)
import urllib.request from selenium import webdriver import time NumberOfSites = 19 CurrentUrl = 0 SleepTimeinSeconds = 3 NextUrl = 1 myUrls = ['https://www.stackexchange.com/', 'https://security.stackexchange.com/', 'https://reverseengineering.stackexchange.com/', 'https://unix.stackexchange.com/', 'https://serverfault.com/', 'https://superuser.com/', 'https://stackoverflow.com/', 'https://networkengineering.stackexchange.com/', 'https://askubuntu.com/', 'https://scicomp.stackexchange.com/', 'https://softwareengineering.stackexchange.com/', 'https://crypto.stackexchange.com/', 'https://dba.stackexchange.com/', 'https://math.stackexchange.com/', 'https://raspberrypi.stackexchange.com/', 'https://iot.stackexchange.com/', 'https://arduino.stackexchange.com/', 'https://physics.stackexchange.com/', 'https://sqa.stackexchange.com/'] WebBrowserDriver = webdriver.Edge(r"C:\Windows\SystemApps\Microsoft.MicrosoftEdge_8wekyb3d8bbwe\MicrosoftWebDriver.exe") while CurrentUrl < NumberOfSites: WebBrowserDriver.get(myUrls[CurrentUrl]) time.sleep(SleepTimeinSeconds) WebBrowserDriver.refresh() CurrentUrl += NextUrl if CurrentUrl == NumberOfSites: WebBrowserDriver.quit()
# -*- coding: utf-8 -*- from selenium import webdriver import time import gmail_nrg_code as nrg_code print("© 2019 zeveos . ALL RIGHTS RESERVED.") print("Created just 4 fun :D") print("\r") print("May the Force be with you.") print("Patience you must have, my young padawan.") driver = webdriver.Edge() driver.get("https://game.energy.ch/") # assert "Energy" in driver.title answers = [ "One Republic", "1300", "gewinnen", "XTRA-Circle", "Twitter", "E-Mail", "2014", "450 Tonnen", "70 Meter", "Die sechste", "Lo & Leduc", "im Radio, auf der Website und über Social Media", "40’000", "Energy Air findet trotzdem statt", "Im Privatjet", "Stade de Suisse, Bern",
import requests from selenium import webdriver from selenium.common.exceptions import TimeoutException from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By from selenium.common.exceptions import NoSuchElementException from webdriver_manager.microsoft import EdgeChromiumDriverManager import time f = open("settings.txt", "r") email, password, zipcode = f.readline().rstrip('\n'), f.readline().rstrip('\n'), f.readline().rstrip('\n') driver = webdriver.Edge(EdgeChromiumDriverManager().install()) driver.maximize_window() #Maximizes the browser window since Udemy has a responsive design and the code only works in the maximized layout def getUdemyLink(url): response = requests.get( url = url ) soup = BeautifulSoup(response.content,'html.parser') linkForUdemy = soup.find('span', class_="rh_button_wrapper").find('a').get('href') return linkForUdemy def getTutorialBarLinks(url):
import random from time import sleep from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.edge.options import Options # from msedge.selenium_tools import EdgeOptions # opts = Options() # opts.capabilities("user-agent=Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/71.0.3578.80 Chrome/71.0.3578.80 Safari/537.36") # opts.add_argument("user-agent=Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/71.0.3578.80 Chrome/71.0.3578.80 Safari/537.36") # driver=webdriver.Edge('Selenium_pract/msedgedriver.exe',edge_options=opts) driver = webdriver.Edge('Selenium_pract/msedgedriver.exe') # driver.get('https://listado.mercadolibre.com.ec/repuestos-autos-camionetas-bujias') driver.get( 'https://www.google.com/maps/place/Restaurante+Amazonico/@40.423706,-3.6872655,17z/data=!4m7!3m6!1s0xd422899dc90366b:0xce28a1dc0f39911d!8m2!3d40.423706!4d-3.6850768!9m1!1b1' ) scrollingScript = """ document.getElementsByClassName('section-layout section-scrollbox cYB2Ge-oHo7ed cYB2Ge-ti6hGc')[0].scroll(0, 20000) """ scrolls = 0 sleep(random.uniform(5, 6)) while (scrolls != 3): driver.execute_script(scrollingScript) sleep(random.uniform(5, 6)) scrolls += 1
from selenium import webdriver from time import sleep import sys #browser = 'edge' browser = sys.argv[1] driver = None if browser == 'chrome': driver = webdriver.Chrome() elif browser == 'firefox': # For firefox browser we need geckodriver. driver = webdriver.Firefox(executable_path="E:\\driver\\geckodriver.exe") elif browser == 'edge': driver = webdriver.Edge( executable_path="C:\\drivers\\edgedriver_win32\\msedgedriver.exe") driver.maximize_window() driver.implicitly_wait(10) driver.get('https://www.google.co.in') driver.find_element_by_name('q').send_keys("Python") sleep(2) driver.find_element_by_name('btnK').click() sleep(2) driver.close()
def start_browser(self, browser='chrome'): ''' 启动浏览器 :param browser: 浏览器类型 ''' if BaseUI.driver: log_tool.info("浏览器以启动,请勿再次启动浏览器。") return try: if browser == "firefox" or browser == "ff": BaseUI.driver = webdriver.Firefox() elif browser == "chrome": driver_path = DRIVER_PATH BaseUI.driver = webdriver.Chrome(driver_path) BaseUI.driver.maximize_window() BaseUI.driver.implicitly_wait(10) elif browser == "internet explorer" or browser == "ie": BaseUI.driver = webdriver.Ie() elif browser == "opera": BaseUI.driver = webdriver.Opera() elif browser == "chrome_headless": chrome_options = Options() chrome_options.add_argument('--headless') BaseUI.driver = webdriver.Chrome(DRIVER_PATH,options=chrome_options) elif browser == "chrome_debugger": print("chrome_debugger模式") chrome_options = Options() chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:9111") BaseUI.driver = webdriver.Chrome(DRIVER_PATH, options=chrome_options) # BaseUI.driver.maximize_window() BaseUI.driver.implicitly_wait(10) elif browser == "mobile": print("mobile模式") # mobileEmulation = {'deviceName': 'Galaxy S5'} # chrome_options = webdriver.ChromeOptions() # chrome_options.add_experimental_option('mobileEmulation', mobileEmulation) # BaseUI.driver = webdriver.Chrome(executable_path=DRIVER_PATH, chrome_options=chrome_options) WIDTH = 320 HEIGHT = 640 PIXEL_RATIO = 3.0 UA = 'Mozilla/5.0 (Linux; Android 4.1.1; GT-N7100 Build/JRO03C) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/35.0.1916.138 Mobile Safari/537.36 T7/6.3' mobileEmulation = {"deviceMetrics": {"width": WIDTH, "height": HEIGHT, "pixelRatio": PIXEL_RATIO},"userAgent": UA} options = webdriver.ChromeOptions() options.add_experimental_option('mobileEmulation', mobileEmulation) BaseUI.driver = webdriver.Chrome(executable_path=DRIVER_PATH, chrome_options=options) BaseUI.driver.maximize_window() BaseUI.driver.implicitly_wait(10) elif browser == "headless": chrome_options = Options() # chrome_options.add_argument('--no-sandbox') # 解决DevToolsActivePort文件不存在的报错 # chrome_options.add_argument('window-size=1920x3000') # 指定浏览器分辨率 # chrome_options.add_argument('--disable-gpu') # 谷歌文档提到需要加上这个属性来规避bug # chrome_options.add_argument('--hide-scrollbars') # 隐藏滚动条, 应对一些特殊页面 # chrome_options.add_argument('blink-settings=imagesEnabled=false') # 不加载图片, 提升速度 chrome_options.add_argument('--headless') # 浏览器不提供可视化页面. linux下如果系统不支持可视化不加这条会启动失败 chrome_options.binary_location = r"C:\Program Files\Google\Chrome\Application\chrome.exe" # 手动指定本机电脑使用的浏览器位置 # 创建一个driver,进行后面的请求页面等操作,executable_path指定本机中chromedriver.exe的位置 BaseUI.driver = webdriver.Chrome(chrome_options=chrome_options, executable_path=DRIVER_PATH) elif browser == 'edge': BaseUI.driver = webdriver.Edge() else: log_tool.error("启动浏览器失败,没有找到%s浏览器,请输入'ie', 'ff', 'opera', 'edge', 'chrome' or 'chrome_headless'"% browser) raise NameError( "启动浏览器失败,没有找到%s浏览器,请输入'ie', 'ff', 'opera', 'edge', 'chrome' or 'chrome_headless'"% browser) except WebDriverException: log_tool.error("启动浏览器失败,请检查webdriver是否配置,或者webdriver版本是否和浏览器匹配") raise self.shot("-------测试开始,启动{}浏览器成功-------".format(browser))
lambda opts: webdriver.Chrome( ChromeDriverManager(chrome_type=ChromeType.CHROMIUM).install(), options=opts, ), supported.firefox: lambda opts: webdriver.Firefox( executable_path=GeckoDriverManager().install(), options=opts, ), supported.ie: lambda opts: webdriver.Ie( IEDriverManager().install(), options=opts, ), supported.edge: lambda ____: webdriver.Edge(EdgeChromiumDriverManager().install(), ), supported.opera: lambda opts: webdriver.Opera( executable_path=OperaDriverManager().install(), options=opts, ), } def local( name: supported. BrowserName = 'chrome', # todo: consider change default to ... and then get it from options if passed options: WebDriverOptions = None ) -> WebDriver: return installers[name](options)
from selenium import webdriver from selenium.webdriver.common.keys import Keys from selenium.common.exceptions import NoSuchElementException import time #OLX Scenario 1 olx = 'https://www.olx.pl/' edge = webdriver.Edge(executable_path='C:\msedgedriver.exe') edge.maximize_window() edge.get(olx) olx_cookie_accept = edge.find_element_by_id("onetrust-accept-btn-handler") olx_cookie_accept.click() olx_search = edge.find_element_by_id("headerSearch") olx_search.send_keys("gundam") olx_cityfield = edge.find_element_by_id("cityField") olx_cityfield.send_keys("Gdańsk") time.sleep(1) olx_cityfield.send_keys(Keys.ENTER) olx_cityfield.send_keys(Keys.ENTER) time.sleep(1) try: assert "Gundam w Gdańsk" in edge.title print("Correct title, test number 1 passed") except AssertionError: print("Title is not correct") #OLX Scenario 2 olx_register = 'https://www.olx.pl/konto/#register' edge.get(olx_register)
import requests import urllib from bs4 import BeautifulSoup from selenium import webdriver import image_processing_test webbrowser = webdriver.Edge('msedgedriver.exe') webbrowser.get('http://app.vr.org.vn/ptpublic/ThongtinptPublic.aspx') fill_in_license_plate = webbrowser.find_element_by_id('txtBienDK') fill_in_license_plate.send_keys('51F86840T') fill_in_license_code = webbrowser.find_element_by_id('TxtSoTem') fill_in_license_code.send_keys('KD-2688613') captcha_img = webbrowser.find_element_by_id('captchaImage') src = captcha_img.get_attribute('src') urllib.request.urlretrieve(src, "captcha.png") submit_btn = webbrowser.find_element_by_id('CmdTraCuu') submit_btn.submit() webbrowser.close() #image_processing_test.CV2_test()
def Verification(username,password): global cnt driver=webdriver.Edge() url="https://passport.vip.com/login" driver.get(url) driver.maximize_window() #切换为账号登录 driver.find_element_by_xpath("//div[@class='c-tab-nav']/div[2]").click() time.sleep(2) driver.find_element_by_id("J_login_name").clear() driver.find_element_by_id("J_login_pwd").clear() driver.find_element_by_id("J_login_name").send_keys("15989046161") driver.find_element_by_id("J_login_pwd").send_keys("VIPskm168") #点击10次使得出现验证码 for i in range(1,15): driver.find_element_by_id("J_login_submit").click() time.sleep(1) driver.save_screenshot(r"D:\\VIP\\aa.png") #截取当前网页,该网页有我们需要的验证码 imgelement = driver.find_element_by_xpath(".//span[@class='u-code-img']/img") #imgelement = driver.find_element_by_id("code") #定位验证码 location = imgelement.location #获取验证码x,y轴坐标 size=imgelement.size #获取验证码的长宽 print("size : %r " %size) coderange=(int(location['x']),int(location['y']),int(location['x']+size['width']), int(location['y']+size['height'])) #写成我们需要截取的位置坐标 i=Image.open(r"D:\\VIP\\\aa.png") #打开截图 frame4=i.crop(coderange) #使用Image的crop函数,从截图中再次截取我们需要的区域 frame4.save(r"D:\\VIP\\frame4.png") i2=Image.open(r"D:\\VIP\\frame4.png") imgry = i2.convert('L') #图像加强,二值化,PIL中有九种不同模式。分别为1,L,P,RGB,RGBA,CMYK,YCbCr,I,F。L为灰度图像 sharpness =ImageEnhance.Contrast(imgry)#对比度增强 i3 = sharpness.enhance(3.0) #3.0为图像的饱和度 i3.save("D:\\VIP\\image_code.png") i4=Image.open("D:\\VIP\\image_code.png") VerificationCode=pytesseract.image_to_string(i2).strip() #使用image_to_string识别验证码 print ("VerificationCode: %r" %VerificationCode) '''填入验证码''' if(VerificationCode): driver.find_element_by_id("J_login_code").send_keys(VerificationCode) else: driver.find_element_by_id("J_login_code").send_keys("12345") correct_account='15989046165' correct_pwd='VIPskm168' try: print("I am In") driver.find_element_by_id("J_login_submit").click() time.sleep(1) driver.refresh() current_url = driver.current_url # 登录成功 if (current_url.find("www.vip.com")): # 账号,密码不同时不正确却能登录成功 if (username != correct_account and password != correct_pwd): raise LoginError("Failed! - Login Test Error") else: print("Passed! - Login test Case(Correct Account) %r:" %cnt) driver.get_screenshot_as_file("D:\\VIP\\Passed_Login_Test_Case_%r.png" % cnt) cnt = cnt + 1 driver.quit() else: if (current_url.find("passport.vip.com")): # 账号,密码不匹配,不能登录的情况 if (username != correct_account or password != correct_pwd): print("Passed! - Login Test Case(Incorrect Account) %r" % cnt) driver.get_screenshot_as_file("D:\\VIP\\Failed_Login_Test_Case_%r.png" % cnt) cnt = cnt + 1 driver.quit() # 账号,密码正确却不能登录 else: print("Failed! - Login Test Case %r" % cnt) driver.get_screenshot_as_file("D:\\VIP\\Failed_Login_Test_Case_%r.png" % cnt) cnt = cnt + 1 driver.quit() except LoginError as e: print(e)
from selenium import webdriver edgeBrowser = webdriver.Edge('./msedgedriver.exe') edgeBrowser.get('https://www.seleniumeasy.com/test/basic-first-form-demo.html') assert 'Selenium Easy Demo' in edgeBrowser.title # page_source is the whole html of the page assert 'Show Message' in edgeBrowser.page_source user_message = edgeBrowser.find_element_by_id('user-message') user_message.clear() user_message.send_keys('I AM EXTRA COOOOL') show_message_button = edgeBrowser.find_element_by_class_name('btn-default') show_message_button.click() output_message = edgeBrowser.find_element_by_id('display') assert 'I AM EXTRA COOOOL' in output_message.text edgeBrowser.close() edgeBrowser.close()
myCursor.executemany(sql, values) mySQL.commit() print(myCursor.rowcount, 'was inserted') def find_driver(): PATH = [] os.chdir('/') for root, dirs, files in os.walk(os.getcwd()): if 'msedgedriver.exe' in files: PATH.append(os.path.join(root, 'msedgedriver.exe')) for the_driver in PATH: return the_driver driver = webdriver.Edge(find_driver()) driver.get("https://cardgenerator.io/mastercard-credit-card-generator/") while True: searchCountry = driver.find_element_by_id("personCountryInput") searchCountry.click() jumble = random.choice(countries.country_container) for country in countries.country_container: #print("Countries Intercepted: " + country) getCountry = driver.find_element_by_xpath(jumble) print(getCountry.text) getCountry.click() break
username = browser.find_element_by_name('username') username.send_keys('15733268399') password = browser.find_element_by_name('password') password.send_keys('yinji120225') button = browser.find_element_by_class_name('Button.SignFlow-submitButton.Button--primary.Button--blue') button.click() # ## 声明浏览器对象 from selenium import webdriver browser = webdriver.Chrome() browser = webdriver.Firefox() browser = webdriver.Edge() browser = webdriver.PhantomJS() browser = webdriver.Safari() # ## 访问页面 from selenium import webdriver browser = webdriver.Chrome() browser.get('https://www.taobao.com') print(browser.page_source) browser.close()
from selenium.webdriver import ActionChains from selenium.webdriver.common.keys import Keys from time import sleep welcome=input("欢迎使用重医评教自动化小工具,本工具由python写成.创作初衷仅出于兴趣爱好\n注意事项:输入学号密码后,请手动输入验证码(有6秒的时间)!!!\n---我也想搞自动识别验证码,但没时间折腾了---\n请按回车继续...") f =open('./config.json',encoding='utf-8') #打开‘product.json’的json文件 res=f.read() #读文件 login=json.loads(res)#把json串变成python的数据类型:字典 name=login["name"] password=login["password"] # name=input('请输入学号') # password=input('请输入密码') #因为学校的验证码改后,极其容易输错,而且一旦输错只能重启程序 #为了避免反复输入密码,放弃input输入,改用读取json文件的方式获取登录信息 wd = webdriver.Edge(r'./msedgedriver.exe')#声明浏览器 actionOpenLinkInNewTab = ActionChains(wd)#加入动作 wd.implicitly_wait(2) wd.get('https://jiaowu.cqmu.edu.cn:8080/eams/manageLogin.action') wd.find_element_by_css_selector('input[name="username"]').send_keys(name) wd.find_element_by_css_selector('input[name="password"]').send_keys(password) sleep(8) sleep(2) wd.find_element_by_link_text('量化评教').click() sleep(2)#延长时间,避免出现点击过快提示 wd.find_element_by_link_text('学生评教(新)').click() sleep(2) LIST1=[]#存储各科地址 for i in wd.find_elements_by_css_selector("a[onclick='return bg.Go(this,null)']"): LIST1.append(i.get_attribute('href')) print(LIST1)
def __init__(self): self.browser = webdriver.Edge() self.back_img = None self.cut_img = None self.scaling_ratio = 1.0
# User Enum redtube from selenium import webdriver from selenium.webdriver.common.keys import Keys from time import sleep import extract_html_diff # Using edge browser driver = webdriver.Edge(executable_path='msedgedriver') # Using Firefox browser #driver = webdriver.FirefoxProfile() #driver = webdriver.Firefox(driver) print("The usernames present in redtube are:") # Place all the Email IDs to test in the for loop as shown below. # You can remove all the Email IDs below for i in [ "*****@*****.**", "*****@*****.**", "*****@*****.**", "*****@*****.**" ]: user = i driver.get("https://www.redtube.com/register") p1 = driver.page_source #elem=driver.find_element_by_xpath("//input[@type='text']") #type = 'text'/'email' elem = driver.find_element_by_name("email") elem.send_keys(user) sleep(1) elem.send_keys(Keys.TAB)
from selenium import webdriver import os from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC driver = webdriver.Edge( "E:/WorkFiles/Github/Python_Programming/Subject_Automation/seleniumDrivers/msedgedriver" ) driver.get( "https://demo.seleniumeasy.com/jquery-download-progress-bar-demo.html") driver.implicitly_wait(3) ele = driver.find_element_by_id('downloadButton') ele.click() WebDriverWait(driver, 30).until( EC.text_to_be_present_in_element( #filter (By.CLASS_NAME, 'progress-label'), 'Complete!' #text )) prog_ele = driver.find_elements_by_class_name('progress-label') print(prog_ele[0].text)