Пример #1
0
def execute_event_auto(self, event):
    eventStartTime = int(round(time.time() * 1000))
    chrome_options = Options()
    chrome_options.add_argument("--headless")
    chrome_options.add_argument("--user-data-dir=/tmp/chromium-user-dir")
    chrome_options.add_argument("--user-agent=TweetoasterAutomaticMode")
    if (chrome_auto_port != None):
        chrome_options.add_experimental_option(
            "debuggerAddress",
            "127.0.0.1:" + str(chrome_auto_port[current_process().index]))

    # 增加UA以触发Google Analytics
    # chrome_options.add_argument("--proxy-server=127.0.0.1:12333")
    driver_frontend = webdriver.Chrome(options=chrome_options)
    try:
        processor = TweetProcess(driver_frontend)
        param = {
            'tweet': event['tweet'],
            'template': event['template'],
            'out': 1
        }
        if event['translate'] != '':
            param['translate'] = event['translate']
        if 'noLikes' in event and event['noLikes']:
            param['noLikes'] = event['noLikes']
        driver_frontend.get(self_url + "?" +
                            parse.urlencode(param).replace("+", "%20"))
        # time.sleep(20)
        try:
            WebDriverWait(driver_frontend, 60, 0.5).until(
                EC.presence_of_element_located((By.CSS_SELECTOR, 'canvas')))
        except:
            driver_frontend.save_screenshot(
                f'Matsuri_translation/frontend/cache/LastErrorAuto.png')
        finally:
            filename = processor.save_screenshots_auto(eventStartTime)
            try:
                event["filename"] = filename
                insert_text_chunk(
                    f'Matsuri_translation/frontend/cache/{filename}.png',
                    f'Matsuri_translation/frontend/cache/{filename}.png',
                    json.dumps(event).encode("utf-8"))
            except:
                print("error in metadata")
    except:
        driver_frontend.save_screenshot(
            f'Matsuri_translation/frontend/cache/LastErrorAuto.png')
    finally:
        # time.sleep(5)

        driver_frontend.quit()
    return filename
Пример #2
0
 def get_capabilities(cls, extensions=None):
     from selenium.webdriver.chrome.webdriver import Options as ChromeOptions
     chrome_options = ChromeOptions()
     if extensions:
         for extension in extensions:
             chrome_options.add_extension(extension)
     chrome_options.add_experimental_option(
         'prefs', {
             'credentials_enable_service': False,
             'profile': {
                 'password_manager_enabled': False
             }
         })
     chrome_capabilities = chrome_options.to_capabilities()
     chrome_capabilities['loggingPrefs'] = {'browser': 'ALL'}
     return chrome_capabilities
Пример #3
0
def execute_event(self, event):
    # logger.info(execute_event.name)
    # logger.info(self.request)
    # logger.info(current_process().index)
    chrome_options = Options()
    chrome_options.add_argument("--headless")
    if (chrome_twitter_port != None):
        chrome_options.add_experimental_option("debuggerAddress",
                                               "127.0.0.1:" + str(chrome_twitter_port[current_process().index]))
    # chrome_options.add_argument("--user-data-dir=/tmp/chromium-user-dir")
    # chrome_options.add_argument("--no-sandbox")
    # WIDTH = 640  # 宽度
    # HEIGHT = 4000  # 高度
    # PIXEL_RATIO = 1.0  # 分辨率
    #
    # mobileEmulation = {"deviceMetrics": {"width": WIDTH, "height": HEIGHT, "pixelRatio": PIXEL_RATIO}}
    # chrome_options.add_experimental_option('mobileEmulation', mobileEmulation)
    # chrome_options.add_argument(
    #     "--user-agent=Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; AS; rv:11.0) Waterfox/56.2")
    # chrome_options.add_argument("--proxy-server=127.0.0.1:12333")
    driver = webdriver.Chrome(options=chrome_options)
    filename = 'success|[]'

    #logger.info("tweet.execute_event.chrome_started")
    try:
        processor = TweetProcess(driver)
        processor.open_page(event['url'])
        #logger.info("tweet.execute_event.page_opened")
        processor.modify_tweet()
        # logger.info("tweet.execute_event.js_executed")
        # processor.scroll_page_to_tweet(event['fast'])
        filename = processor.save_screenshots(event['fast'])
        #logger.info("tweet.execute_event.png_get")
    except:
        # driver.save_screenshot(f'Matsuri_translation/frontend/cache/LastError.png')
        driver.quit()
        return 'LastError|[]'
    finally:
        #     # time.sleep(5)
        driver.quit()
    #
    return filename
Пример #4
0
 def get_capabilities(cls, extensions=None):
     from selenium.webdriver.chrome.webdriver import Options as ChromeOptions
     chrome_options = ChromeOptions()
     chrome_options.add_argument(
         '--allow-running-insecure-content')  # Move to a config?
     if extensions:
         for extension in extensions:
             chrome_options.add_extension(extension)
     chrome_options.add_experimental_option(
         'prefs', {
             'credentials_enable_service': False,
             'profile': {
                 'password_manager_enabled': False
             }
         })
     if 'mobile_emulation' in capabilities.keys(
     ) and capabilities['mobile_emulation']:
         chrome_options.add_experimental_option(
             'mobileEmulation', capabilities['mobile_emulation'])
     chrome_capabilities = chrome_options.to_capabilities()
     chrome_capabilities['loggingPrefs'] = {'browser': 'ALL'}
     return chrome_capabilities
Пример #5
0
def execute_event(self, event):
    logger.info(execute_event.name)
    logger.info(self.request)
    logger.info(current_process().index)
    chrome_options = Options()
    chrome_options.add_argument("--headless")
    chrome_options.add_argument('--disable-dev-shm-usage')
    if (chrome_twitter_port != None):
        logger.info('chrome_twitter_port ' + str(chrome_twitter_port))
        chrome_options.add_experimental_option(
            "debuggerAddress",
            "127.0.0.1:" + str(chrome_twitter_port[current_process().index]))
    chrome_options.add_argument("--no-sandbox")
    try:
        driver = webdriver.Chrome(options=chrome_options)
    except Exception as e:
        import traceback
        logger.error(e)
        traceback.print_exc()
        raise e
    filename = 'success|[]'

    logger.info("tweet.execute_event.chrome_started")
    try:
        processor = TweetProcess(driver)
        processor.open_page(event['url'])
        logger.info("tweet.execute_event.page_opened")
        processor.modify_tweet()
        logger.info("tweet.execute_event.js_executed")
        # processor.scroll_page_to_tweet(event['fast'])
        filename = processor.save_screenshots(event['fast'])
        logger.info("tweet.execute_event.png_get")
    except:
        return 'LastError|[]'
    finally:
        driver.quit()

    return filename
Пример #6
0
def execute_event(event):
    chrome_options = Options()
    chrome_options.add_argument("--headless")
    chrome_options.add_argument("--user-data-dir=/tmp/chromium-user-dir")
    # chrome_options.add_argument("--no-sandbox")
    WIDTH = 640  # 宽度
    HEIGHT = 4000  # 高度
    PIXEL_RATIO = 1.0  # 分辨率

    mobileEmulation = {
        "deviceMetrics": {
            "width": WIDTH,
            "height": HEIGHT,
            "pixelRatio": PIXEL_RATIO
        }
    }
    chrome_options.add_experimental_option('mobileEmulation', mobileEmulation)
    # chrome_options.add_argument(
    #     "--user-agent=Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; AS; rv:11.0) Waterfox/56.2")
    # chrome_options.add_argument("--proxy-server=127.0.0.1:12333")
    driver = webdriver.Chrome(options=chrome_options)
    filename = 'success|[]'
    try:
        processor = TweetProcess(driver)
        processor.open_page(event['url'])
        processor.modify_tweet()
        processor.scroll_page_to_tweet(event['fast'])
        filename = processor.save_screenshots()
    except:
        # driver.save_screenshot(f'Matsuri_translation/frontend/cache/LastError.png')
        driver.quit()
        return 'LastError|[]'
    finally:
        #     # time.sleep(5)
        driver.quit()
    #
    return filename
Пример #7
0
# coding:utf-8
# author: Articuly
# datetime: 2020/6/12 17:54
# software: PyCharm

import time, random
import pickle
from selenium import webdriver
from selenium.webdriver.chrome.webdriver import Options, WebDriver

# 创建实例
options = Options()
# 开启无头模式
options.headless = True
options.add_argument('window-size=1550x838')
options.add_experimental_option('excludeSwitches', ['enable-automation'])
browser = WebDriver(r'D:\Browser\Chromium\chromedriver.exe', options=options)

# 打开网页
browser.get('https://www.taobao.com')
# 将浏览器最大化显示
browser.maximize_window()
print('windows', browser.get_window_size())
# 隐性等待页面加载完成,如果一个元素获取不到,会等待30s
browser.implicitly_wait(30)

try:
    with open('cookie.txt', 'rb') as f:
        cookies = pickle.load(f)
except Exception as e:
    print(e)
from selenium.webdriver.chrome.webdriver import Options, WebDriver
from time import sleep

# 创建实例
options = Options()
options.add_experimental_option('excludeSwitches',
                                ['enable-automation'])  # 关闭浏览器受到控制的提示
browser = WebDriver(r'D:\Browser\Chromium\chromedriver.exe', options=options)
browser.get("https://www.baidu.com")
sleep(2)

# 打印浏览器的宽和高
size_Dict = browser.get_window_size()
print("当前浏览器的宽:", size_Dict['width'])
print("当前浏览器的高:", size_Dict['height'])

# 设置浏览器的大小
browser.set_window_size(width=800, height=500, windowHandle="current")
# windowHandle = "current" 控制当前窗口的意思
sleep(2)

# 打印窗口坐标
position = browser.get_window_position()
print(position)
print("浏览器所在位置的横坐标:", position["x"])
print("浏览器所在位置的纵坐标:", position["y"])

# 设置窗口位置并打印位置坐标
browser.set_window_position(x=100, y=200)
print(browser.get_window_position())
sleep(2)
Пример #9
0
    finally:
        # time.sleep(5)

        driver_frontend.quit()
    return filename


if __name__ == "__main__":
    event = {
        'url': 'https://twitter.com/minatoaqua/status/1383771374183878658'
    }
    chrome_options = Options()
    chrome_options.add_argument("--headless")
    if (chrome_twitter_port != None):
        chrome_options.add_experimental_option(
            "debuggerAddress",
            "127.0.0.1:" + str(chrome_twitter_port[current_process().index]))
    driver = webdriver.Chrome(options=chrome_options)
    filename = 'success|[]'

    # logger.info("tweet.execute_event.chrome_started")
    try:
        processor = TweetProcess(driver)
        processor.open_page(event['url'])
        # logger.info("tweet.execute_event.page_opened")
        processor.modify_tweet()
        # logger.info("tweet.execute_event.js_executed")
        # processor.scroll_page_to_tweet(event['fast'])
        filename = processor.save_screenshots(event['fast'])
        # logger.info("tweet.execute_event.png_get")
    except: