第九章 三种等待方法

1.sleep:进程休眠
— 傻傻的等,会浪费时间(import time)
2. implicitly_wait(30):等待页面完全加载完成
–页面加载完成的标志是左上角转圈结束
–如果页面元素加载完成了,某些js加载失败,页面左上角一直转圈,会耗费时间
– 全局的,只写一次就行了
– 缺点:页面有跳转的时候,它不知道去等跳转后的页面
3. WebDriverWait(self, driver, timeout, poll_frequency=POLL_FREQUENCY, ignored_exceptions=None)
–driver:打开浏览器的一个实例参数,这个不用多说
–timeout:超时的总时长30s
–poll_frequency:循环去查询的间隙时间,默认0.5秒
–ignored_exceptions:忽略异常,默认忽略NoSuchElementException

#coding=utf-8
from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.common.exceptions import *
driver=webdriver.Firefox()
driver.get("https://www.baidu.com")
#等待时长10秒,默认0.5秒询问一次
element = WebDriverWait(driver, 10).until(lambda x: x.find_element_by_xpath(".//*[@id='kw']"))
element.send_keys("yoyo")
#判断页面上不存在某个元素
is_disappeared=WebDriverWait(driver,10,1,(ElementNotVisibleException)).until_not(lambda x:x.find_element_by_xpath(".//*[@id='kw11']").is_displayed())
print(is_disappeared)
### Android Studio 第三版 第九章 内容总结 #### 9.1 Service 的概念与分类 Service 是一种运行在后台的任务组件,它不依赖于用户界面。根据其生命周期和服务范围的不同,可以分为两类: - **本地服务**:仅限于应用程序内部调用的服务。 - **远程服务**:可以通过跨进程通信(IPC)被其他应用访问的服务。 #### 9.2 Service 的两种启动方式 Service 可以通过以下两种方式进行启动: 1. **startService 方式**:通过 `Context.startService()` 方法启动服务,适合执行长时间运行的操作。即使客户端断开连接,该服务仍然会继续运行直到显式停止[^2]。 2. **bindService 方式**:通过 `Context.bindService()` 方法绑定到服务,适用于需要与服务交互的场景。当最后一个客户端解除绑定时,服务会被销毁[^2]。 #### 9.3 生命周期方法详解 以下是 Service 的重要生命周期回调函数及其作用: - `onCreate()`:首次创建服务时调用。 - `onStartCommand(Intent intent, int flags, int startId)`:每次通过 `startService` 启动服务时都会触发。 - `onBind(Intent intent)`:返回 IBinder 对象用于客户端与服务之间的通信。 - `onUnbind(Intent intent)`:当所有客户端都解绑后调用。 - `onDestroy()`:服务终止前调用,通常在此释放资源。 #### 9.4 AIDL (Android Interface Definition Language) AIDL 是实现跨进程通信的一种机制,主要用于定义接口以便不同进程间的数据交换。编写 AIDL 文件需要注意以下几点: - 定义 `.aidl` 文件并声明接口方法。 - 实现服务器端逻辑并通过 `Binder` 提供服务。 - 在客户端获取服务实例并调用相应的方法。 #### 9.5 动态调试第三方 APK 如果需要对第三方 APK 进行动态调试,则可以在目标 APK 的主 Activity 或 Application 中插入如下 smali 代码片段以等待调试器附加: ```smali invoke-static {}, Landroid/os/Debug;->waitForDebugger()V ``` 这一步骤能够帮助开发者暂停程序执行流程直至成功建立调试环境[^3]。 #### 9.6 版本管理与兼容性注意事项 自更新版本编号系统以来,Android Studio 使用了一套更加清晰明了的方式标记各个发行版号。例如,“Arctic Fox | 2020.3.1 Patch 3”,其中 “2020.3” 表示基于对应年份发布的 IntelliJ 平台版本;而后续两位数则分别代表 Studio 主要及次要修订级别变化情况[^1]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值