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])
具体使用方法和方法一相同,可以获取到当前文件的绝对路径。