当前位置:   article > 正文

selenium的等待条件_selenium等待条件

selenium等待条件

在上一篇文章中,我们讲到了显示等待,在until的方法中使用的等待条件是:title_is。下面简单介绍了selenium的17种等待:

序号方法名含义返回值
1title_is判断title,是否出现布尔
2title_contains判断title,是否包含某些字符布尔
3presence_of_element_located判断某个元素是否被加到了dom树里,并不代表该元素一定可见WebElement
4visibility_of _element_located判断某个元素是否被加到了dom树里并且可见,宽和高都大于0WebElement
5visibility_of判断元素是否可见,如果可见就返回这个元素WebElement
6presence_of_all_elements_located判断是否至少有一个元素存在于dom树中列表
7visibility_of_any_elements_located判断是否至少有一个元素在页面上可见列表
8text_to_be_present_in_element判断指定的元素中是否包含了预期的字符串布尔
9text_to_be_present_in_element_value判断指定的元素属性值中是否包含了预期的字符串布尔
10frame_to_be_available_and_switch_to_it判断该iframe是否可以switch进去布尔
11invisibility_of_elements_located判断某个元素是否存在于dom或不可见布尔
12element_to_be_clickable判断某个元素中是否可见且是enable的,代表可点击布尔
13staleness_of等待某个元素从dom树中移除布尔
14element_to_bo_selected判断某个元素是否被选中了布尔
15element_selection_state_to_be判断某个元素的选中状态是否符合预期布尔
16element_located_selection_state_to_be判断某个元素的选中状态是否符合预期布尔
17alert_is_present判断页面上是否存在alertalert

代码示例如下:

from selenium import webdriver
import os

from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait

class TestCase(object):
    def __init__(self):
        self.driver = webdriver.Chrome()
        path = 'file:///'+os.path.abspath('test_wait.html')
        self.driver.get(path)

    def test(self):
        self.driver.find_element_by_id('btn').click()
        # 显示等待
        wait = WebDriverWait(self.driver, 3)
        wait.until(EC.text_to_be_present_in_element((By.ID, 'id2'), 'id 2'))
        print(self.driver.find_element_by_id('id2').text)
        print('ok')
        self.driver.quit()

if __name__ == '__main__':
    case = TestCase()
    case.test()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

当 wait = WebDriverWait(self.driver, 3)中的3改为1时,则会报TimeoutException错误;如果没有显示等待,则会报NoSuchElementException。
html的页面代码如下:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>title</title>
</head>
<body>
<script>
    function f(){
        window.setTimeout("populate()",2000);
    }
    function populate(){

        document.getElementById("id1").innerHTML = "<div id='id2'>id 2</div>"
    }
</script>
<form>
    <input type="text" name="t1">
    <input type="button" value="Click me" onclick="f()" id="btn">
    <div id="id1">
    </div>
</form>
</body>

</html>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号