简体   繁体   中英

error Element is not currently visible and so may not be interacted with Selenuim

I am using Selenium to record my actions on a webpage, however, when I play the test case, there is an click action throwing error: Element is not currently visible and so may not be interacted with. However, I am sure that button is visible, and here is html for it:

<button class="btn btn-success btnSubmit" style="font-size: 1.9em; width: 100%; height: 2em; margin-top: 20px;" type="submit"> Get Your Report </button>

Also, here is my test script for Selenium IDE:

  <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head profile="http://selenium-ide.openqa.org/profiles/test-case">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="selenium.base" href="http://hra.case.edu/" />
<title>New Test</title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr><td rowspan="1" colspan="3">New Test</td></tr>
</thead><tbody>
<tr>
    <td>open</td>
    <td>/</td>
    <td></td>
</tr>
<tr>
    <td>clickAndWait</td>
    <td>link=Get Started</td>
    <td></td>
</tr>
<tr>
    <td>keyPress</td>
    <td>name=searchFirstName</td>
    <td>Tiancheng</td>
</tr>
<tr>
    <td>waitForElementPresent</td>
    <td>//div[@id='content']//tbody[@id='select_user']/tr[1]//a</td>
    <td></td>
</tr>
<tr>
    <td>clickAndWait</td>
    <td>//div[@id='content']//tbody[@id='select_user']/tr[1]//a</td>
    <td></td>
</tr>
<tr>
    <td>type</td>
    <td>id=answer_heightFoot</td>
    <td>5</td>
</tr>
<tr>
    <td>type</td>
    <td>id=answer_heightInch</td>
    <td>11</td>
</tr>
<tr>
    <td>type</td>
    <td>id=answer_weight</td>
    <td>222</td>
</tr>
<tr>
    <td>select</td>
    <td>id=answer_bodySize</td>
    <td>label=Medium</td>
</tr>
<tr>
    <td>click</td>
    <td>id=answer_diabetes_no</td>
    <td></td>
</tr>
<tr>
    <td>click</td>
    <td>link=Other</td>
    <td></td>
</tr>
<tr>
    <td>clickAndWait</td>
    <td>id=next</td>
    <td></td>
</tr>
<tr>
    <td>waitForElementPresent</td>
    <td>//button[@type='submit']</td>
    <td></td>
</tr>
<tr>
    <td>verifyElementPresent</td>
    <td>//button[@type='submit']</td>
    <td></td>
</tr>
<tr>
    <td>click</td>
    <td>//button[@type='submit']</td>
    <td></td>
</tr>
</tbody></table>
</body>
</html>

Anyone has an idea of why? Thanks in advance!

Some webelement may be present at DOM but be invisible at the same time. So, after you perform some action use waitForVisible method to wait for element to become visible and interactible

UPDATE : @Kees de Kooter, here's the working example

<tr>
    <td>open</td>
    <td>http://stackoverflow.com/</td>
    <td></td>
</tr>
<tr>
    <td>click</td>
    <td>css=.js-help-button</td>
    <td></td>
</tr>
<tr>
    <td>waitForElementPresent</td>
    <td>css=.js-help-button</td>
    <td></td>
</tr>
<tr>
    <td>waitForVisible</td>
    <td>css=.js-help-dialog</td>
    <td></td>
</tr>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM