等待程序的左右手法则

等待程序的左右手法则,第1张

等待程序的左右手法则:左(右)手法则实际上是仪表法的间接使用,左程序用左手,右程序用右手,两手的拇指、食指和中指分别对应仪表扇区的三个边界构成三个扇区,掌心代表定位点(导航台),食指所指代表飞向定位点的航向,然后根据入航航迹线或出航航迹角所在的扇区加入。

用左(右)手划分扇区的设想是:右航线用右手,食指所指为飞向定位点的航向,以食指为准,向左减小110的方向为拇指所指方向。

向右增加70的方向为中指所指方向,连接中指拇指,就将360范围分成了三个扇区,左上方拇指与食指所夹110扇区为第一扇区,右上方食指与中指所夹70扇区为第二扇区,下方中指与拇指所夹180扇区为第三扇区。

左航线用左手,扇区设想与右航线相同,右上方食指与拇指所夹110扇区为第一扇区,左上方中指与食指所夹70扇区为第二扇区,下方拇指与中指所夹180扇区为第三扇区。

用左(右)手设想出等待航线和确定进入方法

三个扇区在左(右)手上设想以后,假设掌心为导航台,以导航台为准,设想出等待航线或直角航线,看入航航迹线或出航航迹角落在哪个扇区,就用该扇区的加入方法进入。

例如,飞机向台航向为155,向台航迹为90,出航航迹为270,飞行员用右手划分进入扇区,食指指示155、拇指指示45、中指指示225,从而确定出飞机的入航航迹线或出航航迹角270落在第三扇区,因而采用直接进入的方法,即右转至出航航向270即可加入等待航线。

进程进入等待状态有:

A、CPU调度给优先级更高的线程。

B、阻塞的线程获得资源或者信号。

C、在时间片轮转的情况下,如果时间片到了。

D、获得spinlock未果。

a、是由运行态进入就绪态。

b、是有阻塞太进入就绪态。

c、是由就绪态进入运行态。

d、一直就绪态。

内容

一个计算机系统进程包括(或者说“拥有”)下列数据:

那个程序的可运行机器码的一个在存储器的映像。 分配到的存储器(通常包括虚拟内存的一个区域)。存储器的内容包括可运行代码、特定于进程的数据(输入、输出)、调用堆栈、堆栈(用于保存运行时运数中途产生的数据)。 分配给该进程的资源的 *** 作系统描述符,诸如文件描述符(Unix术语)或文件句柄(Windows)、数据源和数据终端。

因为调用的time类的sleep方法,所以等待的方式与页面元素无关,执行到此就必然给出规定时间的等待。

在规定时间内等待页面元素全部加载完毕。若在规定时间提前加载完成则会立即往下执行,若在规定时间延迟加载完成,则到达时间也会立刻执行。

借用网友的一个非常形象的比喻来进行说明:闪电侠(driver)和凹凸曼(页面元素)约定好,不论闪电侠去哪儿,都要等凹凸曼XX秒,如果凹凸曼在这段时间内来了,则俩人立即出发去打怪兽,如果凹凸曼在规定时间内没到,则闪电侠自己去,那自然就等着凹凸曼给你抛异常吧。

注意:driver.implicitly_wait(XX)方法在全局仅需设置一次即可,之后只要driver打开的页面,均会生效。

讲解:WebDriverWait(driver,timeout,poll_frequency=0.5,ignored_exceptions=None)

需要通过from selenium.webdriver.support.wait import WebDriverWait导入模块

- driver:浏览器驱动

- timeout:最长超时时间,默认以秒为单位

- poll_frequency:检测的间隔步长,默认为0.5s

- ignored_exceptions:超时后的抛出的异常信息,默认抛出NoSuchElementExeception异常。

※ 一般与until()或者until_not()方法结合使用。

WebDriverWait(driver,10).until(method,message="")    调用该方法提供的驱动程序作为参数,直到返回值为True

WebDriverWait(driver,10).until_not(method,message="")    调用该方法提供的驱动程序作为参数,直到返回值为False

WebDriverWait(driver,10,0.5).until(EC.presence_of_element_located((By.ID,"kw")),message="")   如果省略message=“”,则By.ID外面是三层(),参数是元组  (By.ID,"kw") 

expected_conditions类提供的预期条件判断的方法

presence_of_element_located 判断某个元素是否被加到了 dom 树里,并不代表该元素一定可见

visibility_of_element_located 判断元素是否可见(可见代表元素非隐藏,并且元素宽和高都不等于 0)

presence_of_all_elements_located 判断是否至少有 1 个元素存在于 dom 树中。举例:如果页面上有 n 个元素的 class 都是’wp’,那么只要有 1 个元素存在,这个方法就返回 True

text_to_be_present_in_element 判断某个元素中的 text 是否 包含 了预期的字符串

text_to_be_present_in_element_value 判断某个元素中的 value 属性是否包含 了预期的字符串

element_to_be_clickable 判断某个元素中是否可见并且可点击

element_to_be_selected 判断某个元素是否被选中了,一般用在下拉列表


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11015396.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存