Prechádzať zdrojové kódy

MOD:加快换服务商相关速度

cxyu 3 rokov pred
rodič
commit
9c1b3a4b3a
1 zmenil súbory, kde vykonal 25 pridanie a 19 odobranie
  1. 25 19
      wechat_action/login_ad.py

+ 25 - 19
wechat_action/login_ad.py

@@ -36,8 +36,8 @@ class LogIn:
         # 防止selenium快速崩坏
         options.add_argument("--disable-dev-shm-usage")
         options.add_experimental_option('excludeSwitches', ['enable-automation'])
-        # prefs = {"profile.managed_default_content_settings.images": 2, 'permissions.default.stylesheet': 2}
-        # options.add_experimental_option("prefs", prefs)
+        prefs = {"profile.managed_default_content_settings.images": 2, 'permissions.default.stylesheet': 2}
+        options.add_experimental_option("prefs", prefs)
 
         driver = webdriver.Remote(
             # command_executor='http://192.168.1.100/wd/hub',
@@ -96,22 +96,27 @@ class LogIn:
 
     def select_ad_master(self, service_name, wechat_name, sql_session):
         logging.info('开始切换服务商')
-        time.sleep(5)
-        self.driver.execute_script('''
-                    window.scroll(0,1000000);
-                    ''')
-        self.driver.find_element_by_css_selector(
-            '#root > div > header > div > div.CoreLayout__account-2lIr0 > div').click()
-        self.driver.find_element_by_css_selector(
-            '#root > div > div.CoreLayout__headerDropdown-3xWkD > div > div:nth-child(1) > button').click()
-        service_names = self.driver.find_elements_by_class_name('CoreLayout__headerDropdownItem-X4S98')
-        choice_service = None
-        for _ in service_names:
-            if service_name in _.text:
-                choice_service = _
-        choice_service.click()
-        # 挑选广告投放位置
-        time.sleep(3)
+        WebDriverWait(self.driver, 100).until(
+            lambda driver: self.driver.find_element_by_xpath('//*[@id="root"]/div/header/div/div[3]/div/div[1]'))
+        tmp_service_name = self.driver.find_element_by_xpath('//*[@id="root"]/div/header/div/div[3]/div/div[1]')
+        if service_name != tmp_service_name.text:
+            self.driver.execute_script('''
+                        window.scroll(0,1000000);
+                        ''')
+            self.driver.find_element_by_css_selector(
+                '#root > div > header > div > div.CoreLayout__account-2lIr0 > div').click()
+            self.driver.find_element_by_css_selector(
+                '#root > div > div.CoreLayout__headerDropdown-3xWkD > div > div:nth-child(1) > button').click()
+            service_names = self.driver.find_elements_by_class_name('CoreLayout__headerDropdownItem-X4S98')
+            choice_service = None
+            for _ in service_names:
+                if service_name in _.text:
+                    choice_service = _
+            choice_service.click()
+            # 挑选广告投放位置
+            WebDriverWait(self.driver, 100).until(
+                lambda driver: self.driver.find_element_by_xpath(
+                    '//*[@id="root"]/div/header/div/div[3]/div/div[1]').text == service_name)
         input_wechat_name = self.driver.find_element_by_class_name('TextInput_new__iconRight-pekjS')
         input_wechat_name.click()
         input_wechat_name.send_keys(wechat_name)
@@ -121,7 +126,8 @@ class LogIn:
             var e_one=document.getElementsByClassName('Table_new__wrapper-1cpZN')[0];
             e_one.scroll(10000,100000);
             ''')
-        time.sleep(5)
+        WebDriverWait(self.driver, 100).until(
+            lambda driver: len(self.driver.find_elements_by_link_text('广告投放')) == 1)
         elements = self.driver.find_elements_by_link_text('广告投放')
         elements[0].click()
         time.sleep(1)