Пример #1
0
    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
Пример #2
0
# 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)  #点击重复密码输入
Пример #3
0
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()
Пример #5
0
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)
Пример #6
0
# 제목 : 중고나라 중고상품 (이미지, 제목, 가격 ) 크롤링 소스
# 작성자 : 전규빈

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,
Пример #7
0
#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,
Пример #9
0
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))

Пример #10
0
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')
Пример #11
0
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)
Пример #12
0
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)
Пример #13
0
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)
Пример #14
0
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):
Пример #17
0
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
Пример #18
0
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()
Пример #19
0
    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))
Пример #20
0
        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)
Пример #21
0
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)
Пример #22
0
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()
Пример #23
0
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)
Пример #24
0
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
Пример #26
0
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()
Пример #27
0
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)
Пример #28
0
 def __init__(self):
     self.browser = webdriver.Edge()
     self.back_img = None
     self.cut_img = None
     self.scaling_ratio = 1.0
Пример #29
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)
Пример #30
0
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)