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])
具體使用方法和方法一相同,可以獲取到當前文件的絕對路徑。