python常見問題集錦

WebDriverWait


等待界面觸發條件後執行下一步:

參考:https://www.cnblogs.com/yuuwee/p/6635652.html

注意內部條件的括號必須是雙層,如:((By.ID,'kw'))

WebDriverWait(driver,10).until(EC.title_is(u"百度一下,你就知道"))
'''判斷title,返回布爾值'''

WebDriverWait(driver,10).until(EC.title_contains(u"百度一下"))
'''判斷title,返回布爾值'''

WebDriverWait(driver,10).until(EC.presence_of_element_located((By.ID,'kw')))
'''判斷某個元素是否被加到了dom樹裏,並不代表該元素一定可見,如果定位到就返回WebElement'''

WebDriverWait(driver,10).until(EC.visibility_of_element_located((By.ID,'su')))
'''判斷某個元素是否被添加到了dom裏並且可見,可見代表元素可顯示且寬和高都大於0'''

WebDriverWait(driver,10).until(EC.visibility_of(driver.find_element(by=By.ID,value='kw')))
'''判斷元素是否可見,如果可見就返回這個元素'''

 

send_keys失效


 在爬蟲過程中,對input賦值時,send_keys偶發失效的問題,需要先clear後send_keys

 driver.find_element_by_id("searchKeyWord").clear()
 driver.find_element_by_id("searchKeyWord").send_keys("123")

 

python中出現引用報錯


一般使用import:

import traceback

引用包內的類 from 包 import 類:

from PIL import Image

多級目錄引用:

在每個目錄下建 __init__.py 文件,內容爲空即可。如下目錄:

A文件夾--------B文件夾------a.py

      |-------------C文件夾------b.py

      |-------------c.py

      |-------------d.py

a.py引用b.py:
import sys
sys.path.append("..")
import C.b

a.py引用c.py:
import sys
sys.path.append("..")
import c

c.py引用a.py:
from B import a

c.py引用d.py:
import d #直接引用
from . import d     #.表示當前目錄

 

python模塊調用提示文件不存在


參考:https://blog.csdn.net/cxx654/article/details/79371565

方法一:

需要使用 os.path.dirname(__file__)解決:

import os
print("當前路徑 -> %s" %os.getcwd())
current_path = os.path.dirname(__file__)
def read_file() :
    with open(current_path + "/user_info.txt" , encoding = 'utf-8') as f_obj :
        content = f_obj.readline()
        print("文件內容 -> %s" %content) 

方法二:

有時候方法一也不能起到效果,比如當用C#調用python寫的exe時就會失效。這就需要用到:

os.path.dirname(sys.argv[0])

具體使用方法和方法一相同,可以獲取到當前文件的絕對路徑。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章