From 6296fcee87b162fbf49153b2621fedacd28ccb3c Mon Sep 17 00:00:00 2001 From: hwamil Date: Mon, 26 Oct 2020 22:31:22 -1000 Subject: [PATCH 1/4] open new tab and get gmail.com and switch tab again --- sniper/__main__.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sniper/__main__.py b/sniper/__main__.py index 3ee0b13..dd74483 100644 --- a/sniper/__main__.py +++ b/sniper/__main__.py @@ -9,6 +9,7 @@ from pick import pick from selenium.webdriver.common.by import By + from selenium.webdriver.common.keys import Keys from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.common.exceptions import TimeoutException, NoSuchElementException, WebDriverException @@ -81,6 +82,9 @@ async def main(): driver = webdriver.create() user_agent = driver.execute_script('return navigator.userAgent;') + driver.find_element_by_tag_name('body').send_keys(Keys.COMMAND + 't') + driver.get('https://gmail.com') + driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + Keys.TAB) gpu_data = read_json(data_path / 'gpus.json') target_gpu_name, _ = pick(list(gpu_data.keys()), From c360617a17cb6c87f3913c2da0d26bcde7f9e64a Mon Sep 17 00:00:00 2001 From: hwamil Date: Mon, 26 Oct 2020 22:35:16 -1000 Subject: [PATCH 2/4] moved code to after setup --- sniper/__main__.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/sniper/__main__.py b/sniper/__main__.py index dd74483..6d6c058 100644 --- a/sniper/__main__.py +++ b/sniper/__main__.py @@ -82,9 +82,6 @@ async def main(): driver = webdriver.create() user_agent = driver.execute_script('return navigator.userAgent;') - driver.find_element_by_tag_name('body').send_keys(Keys.COMMAND + 't') - driver.get('https://gmail.com') - driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + Keys.TAB) gpu_data = read_json(data_path / 'gpus.json') target_gpu_name, _ = pick(list(gpu_data.keys()), @@ -126,6 +123,10 @@ async def main(): product_ids = read_json(data_path / 'skus.json') target_id = product_ids[promo_locale][target_gpu_name] + driver.find_element_by_tag_name('body').send_keys(Keys.COMMAND + 't') + driver.get('https://gmail.com') + driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + Keys.TAB) + logging.info('|---------------------------|') logging.info('| Starting Nvidia Sniper 🎯 |') logging.info(f'| Customer locale: {locale} |') From 3ebb47eaf6d677dc1023669ddff6b5970eccc567 Mon Sep 17 00:00:00 2001 From: hwamil Date: Mon, 26 Oct 2020 23:21:25 -1000 Subject: [PATCH 3/4] Changed methods to actionchains --- sniper/__main__.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/sniper/__main__.py b/sniper/__main__.py index 6d6c058..9cd66a3 100644 --- a/sniper/__main__.py +++ b/sniper/__main__.py @@ -8,6 +8,7 @@ import colorama from pick import pick + from selenium.webdriver import ActionChains from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys from selenium.webdriver.support.ui import WebDriverWait @@ -81,6 +82,15 @@ async def main(): notification_config, customer = read_config() driver = webdriver.create() + + driver.get('https://google.com') + actions = ActionChains(driver) + about = driver.find_element_by_class_name('MV3Tnb') + actions.key_down(Keys.CONTROL).click(about).key_up(Keys.CONTROL).perform() + driver.switch_to.window(driver.window_handles[-1]) + driver.get("https://gmail.com") + driver.switch_to.window(driver.window_handles[0]) + user_agent = driver.execute_script('return navigator.userAgent;') gpu_data = read_json(data_path / 'gpus.json') @@ -123,10 +133,6 @@ async def main(): product_ids = read_json(data_path / 'skus.json') target_id = product_ids[promo_locale][target_gpu_name] - driver.find_element_by_tag_name('body').send_keys(Keys.COMMAND + 't') - driver.get('https://gmail.com') - driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + Keys.TAB) - logging.info('|---------------------------|') logging.info('| Starting Nvidia Sniper 🎯 |') logging.info(f'| Customer locale: {locale} |') From 8192cbc76d0ea44348b24de8094bb15c369a84ef Mon Sep 17 00:00:00 2001 From: hwamil Date: Tue, 27 Oct 2020 00:11:53 -1000 Subject: [PATCH 4/4] determine platform to either choose cmd or ctrl key --- sniper/__main__.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/sniper/__main__.py b/sniper/__main__.py index 9cd66a3..06031f9 100644 --- a/sniper/__main__.py +++ b/sniper/__main__.py @@ -23,6 +23,7 @@ from pathlib import Path from time import sleep +from sys import platform import sniper.api as api import sniper.checkout as checkout @@ -83,10 +84,15 @@ async def main(): driver = webdriver.create() + ctrl_cmd = None + if platform == 'darwin': + ctrl_cmd = Keys.COMMAND + else: + ctrl_cmd = Keys.CONTROL driver.get('https://google.com') actions = ActionChains(driver) about = driver.find_element_by_class_name('MV3Tnb') - actions.key_down(Keys.CONTROL).click(about).key_up(Keys.CONTROL).perform() + actions.key_down(ctrl_cmd).click(about).key_up(ctrl_cmd).perform() driver.switch_to.window(driver.window_handles[-1]) driver.get("https://gmail.com") driver.switch_to.window(driver.window_handles[0])