selenium+python的WebDriverWait使用方法

论坛 期权论坛 编程之家     
选择匿名的用户   2021-6-2 16:32   2667   0



当上传完成后,下面总大小的元素就会隐藏,当元素隐藏后,再判断上面进度,当文件上传时,显示进度条,进度到99%时,显示"处理中",上传成功后,显示"完成"
因上传文件的时间与网速及其他因素有关,所以不能用time.sleep()或者driver.implicitly()。
使用WebDriverWait()方法最好:
from selenium.webdriver.support.ui import WebDriverWait
...
#底部总大小进度元素
process = driver.find_element_by_xpath(".//*[@id='js_upload_box']/div/div[4]/div[2]")
#直到底部总大小进度元素隐藏,返回False
wait_process = WebDriverWait(driver,60).until_not(lambda driver:process.is_displayed())

#进度状态元素
process_status = driver.find_element_by_css_selector( "#js_upload_table>tr>td>span")
#如果已隐藏(not False)
if not wait_process:
if process_status.text == u"成功": #判断进度状态为“成功”
print u"上传成功"
else: #否则进度状态为其他
print u"%s"%process_status.text

曾经想过用
WebDriverWait(driver,60).until(process_status.text == u"\u6210\u529f")) #u"\u6210\u529f"是成功
但是进度状态只要有text出现,就会判断失败,不会等到出现“完成”,所以不可行
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP