如何在Selenium Python绑定中等待并获取Span对象的值

Anu*_*shA 5 python selenium unit-testing assertions testcase

我的网页上有以下代码.

<div id="" class="user_acc_setails">
<ul id="accDtlUL">
<li>First Name: <span id="f_name">Anuja</span></li>
Run Code Online (Sandbox Code Playgroud)

到页面加载时,未设置Sapn的值.设置值需要很短的时间.我想等待并在我的Python文件中获取该值.

我目前正在使用以下代码,

element = context.browser.find_element_by_id('f_name')
assert element.text == 'Anuja'
Run Code Online (Sandbox Code Playgroud)

但它给了我一个AssetionError.我怎么解决这个问题?

谢谢

Pet*_*sik 5

这种情况的正确方法是使用显式等待(参见那里的Python代码).所以你需要类似的东西

from selenium.webdriver.support import expected_conditions as EC
wait = WebDriverWait(driver, 10)
element = wait.until(EC.text_to_be_present_in_element((By.Id,'f_name'), 'Anuja'))
Run Code Online (Sandbox Code Playgroud)


Anu*_*shA 0

我找到了解决方案。也许这不是正确的方法。我所做的是在查找元素之前使用Python sleep并断言它的值。

import time
...

time.sleep(3)
element = context.browser.find_element_by_id('f_name')
assert element.text == 'Anuja'
Run Code Online (Sandbox Code Playgroud)

然后它就可以完美工作了。

  • 不,不是,显式等待是您问题的答案:http://docs.seleniumhq.org/docs/04_webdriver_advanced.jsp (2认同)