Skip to content

Commit ae05cb6

Browse files
committed
[test] fix race condition in issue5087-webview-cleardata
1 parent a6c9c2e commit ae05cb6

File tree

3 files changed

+19
-4
lines changed

3 files changed

+19
-4
lines changed

test/sanity/issue5087-webview-cleardata/index.tpl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
<button id="clear">clear data</button>
1111
<p id="result"></p>
1212
<script type="text/javascript">
13+
window.name = 'index';
1314
window.onload = () => {
1415
var webview = document.getElementById('webview')
1516
var clear = document.getElementById('clear')

test/sanity/issue5087-webview-cleardata/test.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,15 +33,14 @@
3333
time.sleep(1)
3434
try:
3535
wait_window_handles(driver, 2)
36+
wait_switch_window_name(driver, 'index')
3637
print driver.current_url
3738
driver.find_element_by_id('clear').click()
38-
result = driver.find_element_by_id('result').get_attribute('innerHTML')
39+
result = wait_for_element_id_content(driver, 'result', 'success')
3940
print result
40-
assert('success' in result)
4141
driver.find_element_by_id('clear').click()
42-
result = driver.find_element_by_id('result').get_attribute('innerHTML')
42+
result = wait_for_element_id_content(driver, 'result', 'success')
4343
print result
44-
assert('success' in result)
4544
finally:
4645
driver.quit()
4746
server.terminate()

test/sanity/nw_util.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,21 @@ def wait_for_element_id(driver, elem_id, timeout=10):
1818
raise Exception('Timeout when waiting for element' + elem_id)
1919
return ret
2020

21+
def wait_for_element_id_content(driver, elem_id, content, timeout=10):
22+
ret = ''
23+
while timeout > 0:
24+
try:
25+
ret = driver.find_element_by_id(elem_id).get_attribute('innerHTML')
26+
if content in ret:
27+
break
28+
except selenium.common.exceptions.NoSuchElementException:
29+
pass
30+
time.sleep(1)
31+
timeout = timeout - 1
32+
if timeout <= 0:
33+
raise Exception('Timeout when waiting for element: ' + elem_id + " content: " + content)
34+
return ret
35+
2136
# wait for window handles
2237
def wait_window_handles(driver, until, timeout=60):
2338
if not hasattr(until, '__call__'):

0 commit comments

Comments
 (0)