51Testing
怬
µçÄÔ°æ

Õâ21Ìõ±Ü¿ÓÖ¸ÄÏ£¬ÈÃÄãÍêÃÀÔËÐÐ×Ô¶¯»¯£¡

2022-9-05 09:20×÷ÕߣºCarl_ÞÈÈ»À´Ô´£ºCSDN

¡¡¡¡1¡¢ÒýÑÔ
¡¡¡¡ÔÚߣÂë¹ý³ÌÖУ¬99.1%µÄ´óÀУ¬¶¼²»¸Ò˵×Ô¼ºµÄߣ³öÀ´µÄ´úÂ룬ÊDz»ÐèÒªdebugµÄ¡£»»¾ä»°Ëµ£¬ÂëÅ©ÔÚߣÂë¹ý³ÌÖУ¬×îÍ´¿àµÄ£¬Äª¹ýÓÚߣ³öÀ´µÄ´úÂ룬ΪÁËÄܱܿӣ¬Ð¡ÓãÒ²ÊÇÔÚߣÂë¹ý³ÌÖУ¬×ܽáµÄÒ»µã±Ü¿Ó·½·¨£¬Çë¸÷λ´óÀÐЦÄÉ¡£
¡¡¡¡2¡¢±Ü¿ÓÄÚÈÝ×ܽá
¡¡¡¡2.1ÎÞ·¨¶¨Î»µ½ÔªËØ
¡¡¡¡Óöµ½ÎÊÌ⣺
¡¡¡¡ÕÒ²»µ½ÔªËØ£¬½Å±¾±¨¡°NoSuchElementException:Unable to find element¡±£¬»ò"¶¨Î»µ½ÁË£¬²»ÄܲÙ×÷£¬µã»÷ÎÞЧ¡£
¡¡¡¡½â¾ö·½·¨£º
¡¡¡¡1£©²é¿´×Ô¼ºµÄ¡°ÊôÐÔÖµ¡±ÊÇ·ñдÕýÈ·
¡¡¡¡2£©ÔªËصıêÇ©²»Î¨Ò»£¬Ä¬ÈÏÕÒµ½µÚÒ»¸ö
¡¡¡¡3£©ÏòÉϲ鿴£¬ÔªËØÊÇ·ñÔÚframe»òiframe¿ò¼ÜÖÐ
¡¡¡¡4£©²é¿´ÔªËØÊÇ·ñÔÚдò¿ªµÄÒ³ÃæÖУ¬ÐèÒªÇл»µ½Ð´°¿Ú
¡¡¡¡5£©»»ÆäËüµÄ¶¨Î»·½Ê½£ºid/name/class name/tag name/link text/xpath/css selector
¡¡¡¡6£©¼ì²éÔªËØÊôÐÔÊÇ·ñÊÇ»á±ä¶¯µÄ¡¢ÊÇ·ñÊÇÒþ²ØµÄ
¡¡¡¡7£©Ìí¼ÓµÈ´ýʱ¼äsleep(),implicitly_wait(),WebDriverWait(driver, 10, 1).until(¶¨Î»µÄÔªËØ, messages)
¡¡¡¡8£©²é¿´±êÇ©µÄÊôÐÔÊÇ·ñÓС°style=¡¯display:none¡¯->¡£ÔªËز»ÏÔʾ¡£ÊôÐÔ¸ÄΪblock¼´¿É
¡¡¡¡9£©²é¿´±êÇ©µÄÊôÐÔÊÇ·ñÓС®¦Ïnclick=return false¡¯->¡£È¡Ïûµã»÷¡£ÊôÐÔ¸ÄΪfalse¼´¿É
¡¡¡¡10£©Õë¶ÔÓÚºóÁ½ÖÖÇé¿ö£¬ÐÞ¸ÄjsÊôÐÔ£º
js=¡±document.getElementById(¡®title¡®).style.display=¡¯block¡¯¡±
driver.execute_script(js)
¡¡¡¡2.2 Indentation Error
¡¡¡¡Óöµ½ÎÊÌ⣺
¡¡¡¡³öÏÖ Indentation Error
¡¡¡¡½â¾ö·½·¨£º
¡¡¡¡½Å±¾´úÂë¶ÔÆë¡£
¡¡¡¡2.3 POÉè¼ÆģʽÀà
¡¡¡¡1¡¢Ê¹ÓÃPOÉè¼Æģʽ·â×°Ò³ÃæÔªËØÀ࣬ÐèÒªÓгõʼ»¯º¯Êý"init"¡£
¡¡¡¡2¡¢Ò³ÃæÔªËص÷ÓÃPageÀàʱºò£¬Pageº¯Êý£¬ºóÃæÀ¨ºÅµÄ¡°self¡±²»ÓÃд¡£
¡¡¡¡3¡¢PageµÄ³õʼ»¯°üº¬£¨self£¬driver£©Á½¸öÔªËØ£¬ÔÚÒ³Ãæ·â×°ÀàÖУ¬³õʼ»¯Öе÷Ó÷½Ê½Îª£º
Page.__init__(self,driver)
¡¡¡¡4¡¢Ò³ÃæÔªËØ·âװʱºò£¬¶¨Î»·½Ê½Ò»¶¨ÒªÐ´¶Ô£¬·ñÔò±¨´í¡£
¡¡¡¡¶¨Î»·½Ê½ÊÇʵÏÖWebUI×Ô¶¯»¯µÄ»ù´¡¡£
¡¡¡¡5¡¢ÔÚÒ³Ãæ·â×°ÖУ¬ÀàµÄ³õʼ»¯Ê¹ÓÃÈçÏÂÑùʽ£º
def __init__(self,driver):
  Page.__init__(self,driver)
¡¡¡¡6¡¢ÀàÖж¨Òå±äÁ¿£¬±ÈÈçx=¡°hello¡±£¬µ÷ÓÃʱʹÓãºself.x¡£
¡¡¡¡7¡¢ÔÚtestcaseÖе÷ÓÃÒÑ·â×°µÄ²¢ÇÒʵÀý»¯µÄÀàʱ£¬ÔÚtestcaseÖж¨Ò庯Êý£¬²»ÐèҪдself¡£
# -*- coding: utf-8 -*-
"""
@ auth : carl_DJ
@ time : 2020-12-19
"""

def test_pmlogin(self):
  try:
    driver = self.driver
    pm = Login(driver)
    pm.strat()
    pm.login_home()
    pm.login_username('admin')
    pm.login_password('8888888')
    pm.login_click()
    time.sleep(2)
    pm.quit()
  except Exception as e:
    logging.info(f"login in failed {e}")
    pm.quit
¡¡¡¡2.4 Ò³Ãæ·â×°ÀàÖÐûÓÐÒѶ¨Ò庯ÊýµÄÎÊÌâ
¡¡¡¡2.4.1 ÌáʾûÓи÷½·¨
¡¡¡¡Óöµ½ÎÊÌ⣺
¡¡¡¡ÔÚµ÷ÓÃbaseView.pyÎļþµÄ¹«¹²·½·¨£¬Ìáʾ£ºÃ»Óи÷½·¨¡£
¡¡¡¡½â¾ö·½·¨£º
¡¡¡¡1.ÐèÒªÔÚbaseView.pyÎļþÈ·ÈÏ£¬ÊÇ·ñÒÑ·â×°¸Ã·½·¨¡£
¡¡¡¡2.µ¼ÈëµÄ°ü/Ä£¿éÊÇ·ñÕýÈ·¡£
¡¡¡¡2.4.2 ûÓж¨ÒåºÃµÄº¯Êý
¡¡¡¡Óöµ½ÎÊÌ⣺
¡¡¡¡ÌáʾÔÚÒ³Ãæ·â×°ÀàÖÐûÓÐbaseView.pyÎļþÖж¨ÒåºÃµÄº¯Êý¡£
¡¡¡¡½â¾ö·½·¨£º
¡¡¡¡¢Ùн¨Ãû×ÖΪmodule_baseView.pthÎļþ£¬ÄÚÈÝΪ¡°baseView.pyÎļþ¡±´æ·Å·¾¶£ºÀýÈ磨¡°E:\Progect¡±)¡£
¡¡¡¡¢Ú ½øÈëpythonµÄ°²×°Ä¿Â¼£¬½«Îļþ·Åµ½python3\lib\sit-packagesÎļþ¼ÐÏ¡£
¡¡¡¡¢Û ÔÚ²âÊÔÓÃÀýÖе¼ÈëÆäËûÎļþ¼ÐÄ£¿éÒýÈ룺import sys¡£
¡¡¡¡¢Ü sys.path.append(¡°¡­¡±)¡£
¡¡¡¡¢Ý from ¡­ import ¡­
¡¡¡¡2.5 parater must be str
¡¡¡¡Óöµ½ÎÊÌ⣺
¡¡¡¡³öÏÖ¡±parater must be str¡°¡£
¡¡¡¡Ô­Òò£º
¡¡¡¡Ê¹ÓòÎÊýÓÐÎÊÌâ¡£
¡¡¡¡½â¾ö·½·¨£º
¡¡¡¡¢ÙÔÚ·â×°Ò³ÃæÔªËض¨Î»·½Ê½Ê±£¬¾­³£»á»áÓöµ½¶þ´Î¶¨Î»¡£
¡¡¡¡¢Ú µÚÒ»´Î¶¨Î»µ÷Óûù´¡ÀàµÄ·½·¨£¬µÚ¶þ´Î¶¨Î»¾ÍÕý³£Ð´¾ÍÐÐÁË¡£
¡¡¡¡ÀýÈ磺
x=self.find_element(locu).find_element(By.ID,'locu')
¡¡¡¡2.6 ¼Ì³Ð
¡¡¡¡¼Ì³Ð£¬Ê¹ÎÒÃǼõÉÙ´úÂëÈßÓ༰´úÂë¸ßЧµÄ³£Ó÷½Ê½¡£
¡¡¡¡×Ó¼¯¼Ì³Ð¸¸¼¶(²»ÊǼ̳ÐÒø×Ó)
¡¡¡¡ÀϹæ¾Ø£¬ÉÏÀý×Ó£º
"""
@ auth : carl_DJ
@ time : 2020-12-19
"""

def __init__(self,dirver):
  Logger.__init__(self,'DJ')
  self.log=self.getlog()
  self.driver = driver
¡¡¡¡2.7 not all arguments curerted during string format
¡¡¡¡Óöµ½ÎÊÌ⣺
¡¡¡¡´òÓ¡Êä³öʱÏÔʾ¡°not all arguments curerted during string format¡±
¡¡¡¡Ô­Òò£º
¡¡¡¡Ç°ºó²ÎÊý²»¶ÔÓ¦¡£
¡¡¡¡½â¾ö·½·¨£º
¡¡¡¡µ÷ÕûÇ°ºó²ÎÊý£¬Ê¹ÆäÒ»Ö¡£
¡¡¡¡2.8 ¶ÁÈ¡ÎļþתÂë´íÎó
¡¡¡¡Óöµ½ÎÊÌ⣺
¡¡¡¡¶ÁÈ¡txtÎļþµÄºº×ÓºÍ×Ö·ûÊÇ£¬´òÓ¡³öÒ»´®±àÂ룬ÈçÏ£º
¡¡¡¡£¨b¡¯\xef\xbb\xbf\xe5\xa5\xbd\xe7\x9a\x84\r\n¡¯)
¡¡¡¡½â¾ö°ì·¨£º
"""
@ auth : carl_DJ
@ time : 2020-12-19
"""
x = open("test.txt","rb")
y = x.readlines()
for i in y:
  #×·¼Óutf8 ¸ñʽ
  j = i.decode('utf-8')
print(j)

x.close()
¡¡¡¡2.9 str object is not callable
¡¡¡¡Óöµ½ÎÊÌ⣺
¡¡¡¡³öÏÖ"¡°str object is not callable¡±
¡¡¡¡Ô­Òò£º
¡¡¡¡Ê¹Óö¨ÒåµÄ±äÁ¿Ãû×ÖÓëÄÚÖÃÄ£¿éÃû×ÖÏàͬ¡£
¡¡¡¡½â¾ö°ì·¨£º
¡¡¡¡Ð޸Ķ¨Òå±äÁ¿Ãû¡£
¡¡¡¡2.10 ¿ªÆô¶à´°¿ÚÎÞ·¨¶¨Î»µ½×îºóÒ»¸ö¾ä±ú
¡¡¡¡Óöµ½ÎÊÌ⣺
¡¡¡¡¿ªÆô¶à´°¿Ú£¬µÚÒ»´ÎµÃµ½µÄ¾ä±úÁбíΪa=[1,2]£¬µÚ¶þ´ÎµÃµ½µÄ¾ä±úÁбíÊÇb=[1,3,2]£¬°´ÕÕ˳ÐòÅÅÐò£¬ÒªÇл»µ½¾ä±ú3¡£
¡¡¡¡½â¾ö·½·¨£º
¡¡¡¡Ê×ÏÈ°ÑaºÍb±ä³É¼¯ºÏ£¬ÔÙÈ¡b²»Í¬ÓÚaµÄÔªËØ£º
c=list(set(b)-set(a))=[3] 
¡¡¡¡È»ºóÔÙת»»ÎªÁÐ±í¸³Öµ¸ø±äÁ¿c£º
driver.switch_to.window(c[0])
¡¡¡¡2.11 Can not connect to the Service chromedriver
¡¡¡¡Óöµ½ÎÊÌ⣺
¡¡¡¡Ìáʾ Can not connect to the Service chromedriver
¡¡¡¡Ô­Òò£º
¡¡¡¡chromedriverδ±»µ÷Óá£
¡¡¡¡½â¾ö·½·¨£º
¡¡¡¡¢Ùpython¸ùĿ¼´æ·Åchromedriver¡£
¡¡¡¡¢Úhrome°æ±¾ºÅÓëchromedriver°æ±¾ºÅ ҪƥÅä¡£
¡¡¡¡¢Ûchromedriver×·¼Óµ½»·¾³±äÁ¿(Path)¡£
¡¡¡¡¢ÜÔËÐнű¾µ÷ÓÃchromedriver¡£
¡¡¡¡¢ÝFirewalls ÔÊÐíchromedriverÔËÐС£
¡¡¡¡2.12 Îļþ·¾¶ÅäÖÃ
¡¡¡¡¶ÁÈ¡Êý¾ÝÎļþ£¬¾¡Á¿Ê¹ÓòÎÊý»¯£¬¼´ µ÷ÓÃosÄ£¿é£º
import os

data_dir = os.path.dirname(os.path.abspath(__file__))
file_path = os.path.join(data_dir,'data1.txt')
¡¡¡¡2.13 Îļþ¸ÄÃûÓ븴ÖÆ
¡¡¡¡python¶ÔÎļþ½øÐÐ"¸ÄÃû"ºÍ"¸´ÖÆ"£º
#ÒýÈëosÄ£¿é
import os
data_dir = os.path.dirname(os.path.abspath(__file__))
old_file = os.path.join(data_dir,'data.txt')
new_file = os.path.join(data_dir,'new_data.txt')

#¸ÄÃû
os.rename(old_file,new_file)

#¸´ÖÆ
os.system(f"copy {old_file},{new_file}"£©
¡¡¡¡2.14 µ÷Óýű¾Ð¡¼¼ÇÉ
¡¡¡¡¼¼ÇÉÒ»
¡¡¡¡ÔËÐÐ×Ô¶¯»¯½Å±¾Ê±£¬½«Êó±ê·Åµ½ÆÁÄ»Öмä»òÕßÏ·½£¬£¨ÓпÉÄÜÇл»´°¿Úʱ¶¨Î»²»µ½£©¡£
¡¡¡¡´óÁ¿½Å±¾ÔËÐУ¬Ò»°ãÎÒÃǶ¼ÊÇÔÚºǫ́ÔËÐС£
¡¡¡¡´úÂëʾÀý£º
options = webdriver.ChromeOptions()
options.add_argument('headless')
driver = webdriver.Chrome(options=options)
¡¡¡¡¼¼Çɶþ
¡¡¡¡cmd´°¿Ú£¬Ö±½Ó°Ñ½á¹ûдÈëÎı¾£º
#²âÊÔ±¨¸æ
python allrun.py >>replor.html 

#log
nohup python my.py >> ../python/logfile/run.log 2>&1
¡¡¡¡²ÎÊý˵Ã÷
¡¡¡¡nuhup£º
¡¡¡¡ÊÇno hang upµÄËõд£¬¼´²»¹Ò¶ÏÔËÐС£
¡¡¡¡2>&1£º
¡¡¡¡0 ±íʾstdin±ê×¼ÊäÈ룬Óû§¼üÅÌÊäÈëµÄÄÚÈÝ¡£
¡¡¡¡1 ±íʾstdout±ê×¼Êä³ö£¬Êä³öµ½ÏÔʾÆÁµÄÄÚÈÝ¡£
¡¡¡¡2 ±íʾstderr±ê×¼´íÎ󣬱¨´íÄÚÈÝ¡£
¡¡¡¡±¾ÎÄÄÚÈݲ»ÓÃÓÚÉÌҵĿµÄ£¬ÈçÉ漰֪ʶ²úȨÎÊÌ⣬ÇëȨÀûÈËÁªÏµ51TestingС±à(021-64471599-8017)£¬ÎÒÃǽ«Á¢¼´´¦Àí
Èí¼þ²âÊÔ¼¼Êõ ×Ô¶¯»¯²âÊÔ
µ±Ç°Ã»ÓÐÆÀÂÛµã»÷·¢±íÆÀÂÛ

Ïà¹ØÔĶÁ