Хотя Xpath доступен, ошибка элемента не найдена. - PullRequest
0 голосов
/ 30 ноября 2018

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!-- saved from url=(0078)http://ussbyintv8057.acetst.com/Enterprise_CRS/CAT06/newquote/FindAccount.aspx -->
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8">
    <title>Account Search</title>
    <link href="./ACE(2).css" type="text/css" rel="stylesheet">
    <script language="javascript" src="./CommonFunctions.js(2).download"></script>
    
    <style type="text/css">
        #btnprog
        {
            border-style: none;
            border-color: inherit;
            border-width: medium;
            width: 73px;
            opacity: 1;
            background: none;
        }
    </style>
    
    <script type="text/javascript">

        function CheckAccountName(txtbox, minlength) {
            // alert(txtbox);
            txt = document.getElementById(txtbox);
            if (txt.value.length < minlength) {
                alert("Enter Account Name with minimum " + minlength.toString() + " characters.");
                window.event.returnValue = false;
            }
            else {
                //enableDisableButtons(false,document.getElementById("btnSearch"));
                enableDisableButtons(true, document.getElementById("btnSearch"));
            }
        }


        function Validate_Page() {

            var Name = document.getElementById("txtAccountName").value;
            var Result = Name.search(/</);
            if (Result != -1) {
                document.getElementById("txtAccountName").value = "";
                document.getElementById("txtAccountName").focus();
                alert('Account Name cannot contain < sign');
                return false;

            }

            else if (document.getElementById("txtAccountName").value == "") {
                alert("Enter Account Name ");
                return false;
            }

            else if (document.getElementById("ddlState").selectedIndex == 0) {
                alert("Enter State/province");
                return false;
            }
            else {
                //enableDisableButtons(false,document.getElementById("btnSearch"));
                document.getElementById("img1").style.visibility = 'visible';
                document.getElementById("btnprog").style.visibility = 'visible';
                enableDisableButtons(true, document.getElementById("btnSearch"));
                return true;
            }

        }





        function doClick(buttonName, e) {
            //the purpose of this function is to allow the enter key to 
            //point to the correct button to click.
            var key;

            if (window.event)
                key = window.event.keyCode;     //IE
            else
                key = e.which;     //firefox

            if (key == 13) {
                //Get the button the user wants to have clicked
                var btn = document.getElementById(buttonName);
                if (btn != null) { //If we find the button click it
                    btn.click();
                    event.keyCode = 0
                }
            }
        }

        function enableDisableButtons(enablestatus, caller) {
            str = true;
            if (document.getElementById("btnSearch") != null) {
                document.getElementById("btnSearch").disabled = str;
            }
            if (document.getElementById("btnReset") != null) {
                document.getElementById("btnReset").disabled = str;
            }
            if (document.getElementById("btnCreateNew") != null) {
                document.getElementById("btnCreateNew").disabled = str;
            }
            if (enablestatus) {
                if (typeof (Page_ClientValidate) == 'function') {
                    Page_ClientValidate();
                    if (Page_IsValid) {
                        __doPostBack(caller.name, '');
                        //EnableDisableAll(true);
                    }
                    else {
                        str = false;
                        if (document.getElementById("btnSearch") != null) {
                            document.getElementById("btnSearch").disabled = str;
                        }
                        if (document.getElementById("btnReset") != null) {
                            document.getElementById("btnReset").disabled = str;
                        }
                        if (document.getElementById("btnCreateNew") != null) {
                            //document.getElementById("btnCreateNew").disabled = str;
                            if (document.getElementById("ddlState").selectedIndex == 0) {
                                document.getElementById("btnCreateNew").disabled = true;
                            }
                            else {
                                document.getElementById("btnCreateNew").disabled = str;
                            }
                        }
                    }
                }
                else {
                    __doPostBack(caller.name, '');
                    //EnableDisableAll(true);
                }
            }
            else {
                __doPostBack(caller.name, '');
                // EnableDisableAll(true);
            }

        }

    </script>
    <meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR">
    <meta content="Visual Basic .NET 7.1" name="CODE_LANGUAGE">
    <meta content="JavaScript" name="vs_defaultClientScript">
    <meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
</head>
<body>
    <form name="form1" method="post" action="http://ussbyintv8057.acetst.com/Enterprise_CRS/CAT06/newquote/FindAccount.aspx" id="form1">
<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="">
<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="">
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="XR9L1Yquq9QLJC4J3CpsLarT/hettWfUlSNWUjbQ6HCHDlc03WxYmgZa2U9CNusORSiOcXVFX2XCF93Zbl3m9Nhj7CPcYGzejzcXZ8KkQwEYkaX/DDrYnHey7gC8oCvpZRIspmpJhPZrhLM55sT2yPGP/NXuuuoj8JlC4HGrb8V2fm4nc5ChL9ZvivQaffL0n7moEag8pwfTm9K82TKE3aZwdY9VFA/vcE8me73ZsU5F+vkehqwdDSw4lop1u3gYsRVJBrDZW6Zg5nSFqM3QE8RHRqwYkI8aQVBBK1q/wcLSdelKWcpibKTVhqtJmdyhGdv+uZ2hpI1J2/0dkX05OKCHWRQaXQnZfIx+iv+IJGrNWFUjEgwf726GBI2rZiK+JN/Xicqt4qScqM9cf/Hj/m2ly5NT0XZ5FIPJ9dUezX2OJYCcockFhyo5LBDpEMP+cTV2p+yEacH75cFSwl6TQ4OWCz052MOsBAEO0ZJrxfcXZU2c0UlBiKt0cLfraKsHdT1BVBKdr7cpWGS4pDhJhosRhFtPOZnOWVimdttYNQdUqX6PawCv71PGeJEcYU4q4qElMpLTijwQo3B2Puc4qS+N/+pMa6XBU898JxxVL/jcCiwxF2CU4ZlFY7DQ1aQqwOF1hU5SLWCd1Mk3idk+/Ae74ZavBXmS6cLwT7FfQcKvZMImWcgk7WJVykIUyW3oHl375EaQggR38QF62dRogwOgnR8CLblPB/RsUVbPFSqGKV9mklsVkBNyhBH//KNaJuG1sCN8m9HQ5nqtA6J1dPVJlnBvRvwkHL/8VOVHYPhMUBAxvfFHjR0wceyFcrZb/9XRXamsfTSjnzhScxLkIuphqR/hxsRTzUj5/8Zb1se+bvdjZfqYFSOJc3Y9Sy8sQGZRgpYPIdJhPiVSvUFiiw5n2G6pM000Rv2YR74Jw76THcw8bet6+YN+f5T5IUNs0e3PTzcQJSJ3bR+rjDLf5/SWODw8S3o80ZbQQNWLnG86/jNlNrjR8QPTWjdNZT0qvVwsOMGiLuQvIqbcTqPop/eDh73bFDb3o/3+RNhKYZRyLI/JCw3SM7EYOtB50s9KtzV32aY/fsHFSww831bJBWEysr91J1s80si6J4tlcCrjMgiLIPInwC6mxszE9ZOp8TcrL3fIfKve19aYGEDSt5XjCjVJCVsFsCKboAP+JqI7Q3IBUsmHQ2BmQFJKsZWxcWdADgm+57lVa9ceg9X/+WBFuskGv2m5i0fDOISrjTgP0tIm6JU2ojfTXqYuC/NlEaCq+ULYAXDP1bgsp4d/7KFscpFTrKxjc2dVOkiiFdBW7XVOCDTJah/N1isKA3NPHmeTOQ==">

<script type="text/javascript">
<!--
var theForm = document.forms['form1'];
if (!theForm) {
    theForm = document.form1;
}
function __doPostBack(eventTarget, eventArgument) {
    if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
        theForm.__EVENTTARGET.value = eventTarget;
        theForm.__EVENTARGUMENT.value = eventArgument;
        theForm.submit();
    }
}
// -->
</script>


<input type="hidden" name="__VIEWSTATEGENERATOR" id="__VIEWSTATEGENERATOR" value="FB9A1659">
<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="LAqN9KqJRJt8nwVwM/CS3iT+g6ogrSCD/nT4j26niWlWT7OlPx2pl4mOPcliyZpAu7nwQIOxr07USDx5OA5zWPYe03ruoenkHm2Z2EtBFVB93BB8rk2sI7NQcxwqzadcrDyjvTZV/Ol7zKp6JvdWl5P/CGO9gvvuLW/YnYnSlMj9BHly07tqXngW3NRHv3o2x1odM7N1HwLteLNrhFxP2f45dX2yGjF3NULUFl7yuRBWhGqxqkQnd41RUchVbjCTZOy8SbQ19TKW+MOhuwf7OyLCeCaqmeWa/dYtuonJuAqazLjVDPWq0CWUBqts9NkUoOriL7dThNoHjV982e7p09SSo7b7sfI4Tgl7ePGmnzJAn+v7zYU62km/9KRnRVmOnQJEF/Dz476r8HNHrYgTD4Y3XQql2jl04Vr+kwt0d+KgRnLNWrBlEYXTALCm41kFzr2Vkuw+AzWNYdlRULtTK09OR3oaHEj1KfN3yRh3FIUPR5bH8ov5BozHKfDqfoc/RaoCvNTlptmjRuMI2L073euGlHigQCuBMCgfR+MOfkrA4F6FA+XcvKhl+939QryKFCdlAnSeeG4zLZmjvAIOmHly/8qKfT7TGBK1bKK45qU1p1XbuhQ8u/Hn9AL7+N+bDDneDJiZL6kVX/Wojz2DfMrKVePPVweatZCpCiIg99ZMKS1QeqRv6LdryPEypZfHfbWICLW1+WLdV6+c3jX2OKzFEk8Wwj0ifWkH42m6ROjG+4eePY4+80oHfQeyNDorEDnGH0JXq25sKxQ1DeF/A2JSsO5TXKU+fT+StVFnsj0dmX5gBOocWgKR+9bv8HzBbVVSjzXkTl5Njc2pphVweCOeBiH+ZP0IAw3mfOSXBCkgqFbUkpA18gTy8h6s88LOOSHNg3/VyD8d2ehbVa0cJTKpaUe6quESAo+ZP5bWfxZKKH3w8d/jxFzRkPgMN7elBAh02bggg0+sPXTmnp1g2BIOglrN1xgdFIiVs+Zdi7fN4wL9pZ5TcN7SLO0/vUGrbig/0rQATrN4UmHo+kdLhUM4l/2BKqg88ogR1KDxKMWDCePqVtN3ZOZWorJw3ORKZle1osLLSSBdnEd/gYSR+/NtJCC9i6V/7zt9AeOSav8KxcmH7nKeKfvltdbCEEYPVJpC3x1bEg3E5ikhtEBNcq22i4Et4XW6KBH2XoaNrqrASz5lX3nNjwKd5hHoiYjBE6yAqmRcOpIEPznzWM1RxqfoO4d36fmta0hJBwcCEo6DXzn+bRTbC9Qc/anGYfcr0YB9MEoexGwOjwaARyRoS7BgUhmfUYOaYERKJwdbfImQA6jFaWI6h2xXIcoCPMsdEK9eVbvGzPiDCJuumvn6I6WyVvuv2ke2w/bIsdDMlzrIi7yyUkTm7ZEvAKs=">
    
    <div class="page" align="left">
        <br>
        <div align="left" class="PageLabel" style="padding-top: 10px;">
            <span>FIND ACCOUNT</span>
        </div>
        <div class="greenbreak" align="left">
        </div>
        <div class="pagecontent">
            <div class="clearline">
                &nbsp;
            </div>
            <div class="StyledLabel leftdiv">
                Search for Applicant Information
            </div>
            <div class="clearline">
                &nbsp;
            </div>
            <div class="clearline">
                &nbsp;
            </div>
            <table style="top: 520; left: 120; width: 500px; margin-top: 5px; margin-left: 5px" border="0">
                <tbody><tr>
                    <td class="StyledLabel" align="left" colspan="2">
                        <p>
                            <span id="lblMessage" class="StyledLabel" style="color:Red;background-color:Transparent;font-family:Arial;font-size:8pt;font-weight:bold;width:110px;"></span></p>
                    </td>
                </tr>
                <tr>
                    <td>
                        <span id="lblAccountName" class="StyledLabel" style="width:110px;">Account Name</span>
                    </td>
                    <td>
                        <input name="txtAccountName" type="text" id="txtAccountName" tabindex="1" class="StyledText" onkeypress="doClick(&#39;btnSearch&#39;,event)">
                    </td>
                </tr>
                <tr>
                    <td>
                        <span id="lblCity" class="StyledLabel" style="width:110px;">City</span>
                    </td>
                    <td>
                        <input name="txtCity" type="text" id="txtCity" tabindex="2" class="StyledText">&nbsp;
                    </td>
                </tr>
                <tr>
                    <td>
                        <span id="lblAccountState" class="StyledLabel" style="width:110px;">Account State </span>
                    </td>
                    <td>
                        <select name="ddlState" id="ddlState" tabindex="3" class="StyledDropDown" style="width:180px;">
	<option value="--Select--">--Select--</option>
	<option value="AK">Alaska</option>
	<option value="AL">Alabama</option>
	<option value="AR">Arkansas</option>
	<option value="AZ">Arizona</option>
	<option value="CA">California</option>
	<option value="CO">Colorado</option>
	<option value="CT">Connecticut</option>
	<option value="DC">District of Columbia</option>
	<option value="DE">Delaware</option>
	<option value="FL">Florida</option>
	<option value="GA">Georgia</option>
	<option value="HI">Hawaii</option>
	<option value="IA">Iowa</option>
	<option value="ID">Idaho</option>
	<option value="IL">Illinois</option>
	<option value="IN">Indiana</option>
	<option value="KS">Kansas</option>
	<option value="KY">Kentucky</option>
	<option value="LA">Louisiana</option>
	<option value="MA">Massachusetts</option>
	<option value="MD">Maryland</option>
	<option value="ME">Maine</option>
	<option value="MI">Michigan</option>
	<option value="MN">Minnesota</option>
	<option value="MO">Missouri</option>
	<option value="MS">Mississippi</option>
	<option value="MT">Montana</option>
	<option value="NC">North Carolina</option>
	<option value="ND">North Dakota</option>
	<option value="NE">Nebraska</option>
	<option value="NH">New Hampshire</option>
	<option value="NJ">New Jersey</option>
	<option value="NM">New Mexico</option>
	<option value="NV">Nevada</option>
	<option value="NY">New York</option>
	<option value="OH">Ohio</option>
	<option value="OK">Oklahoma</option>
	<option value="OR">Oregon</option>
	<option value="PA">Pennsylvania</option>
	<option value="RI">Rhode Island</option>
	<option value="SC">South Carolina</option>
	<option value="SD">South Dakota</option>
	<option value="TN">Tennessee</option>
	<option value="TX">Texas</option>
	<option value="UT">Utah</option>
	<option value="VA">Virginia</option>
	<option value="VT">Vermont</option>
	<option value="WA">Washington</option>
	<option value="WI">Wisconsin</option>
	<option value="WV">West Virginia</option>
	<option value="WY">Wyoming</option>

</select>
                    </td>
                </tr>
                <tr>
                    <td>
                    </td>
                    <td>
                    </td>
                </tr>
                <tr>
                    <td colspan="3">
                        <table border="0" width="80%">
                            <tbody><tr>
                                <td>
                                    <input type="submit" name="btnSearch" value="Search" onclick="return Validate_Page();" language="javascript" id="btnSearch" tabindex="4" class="UsabilityButton" style="width:80px;">
                                </td>
                                <td style="display: none">
                                    <input type="submit" name="btnReset" value="" id="btnReset" class="UsabilityButton" style="height:24px;width:80px;">
                                </td>
                                <td style="display: none">
                                    <input type="submit" name="btnCreateNew" value="" onclick="enableDisableButtons(false,this);" language="javascript" id="btnCreateNew" class="UsabilityButton" disabled="disabled" style="height:24px;width:170px;">
                                </td>
                            </tr>
                        </tbody></table>
                    </td>
                </tr>
            </tbody></table>
            <div class="clearline">
                &nbsp;
            </div>
            <div class="clearline">
                &nbsp;
            </div>
            <div class="clearline">
                &nbsp;
            </div>
            <div class="clearline">
                &nbsp;
            </div>
            <table width="950px">
                <tbody><tr>
                    <td>
                        <table>
                            <tbody><tr>
                                <td>
                                    
                                    <div>

</div>
                                </td>
                            </tr>
                        </tbody></table>
            </td></tr></tbody></table>
            
            <div id="msg" style="display: none;Font-size:20px;" class="StyledLabel_link">
            
                Can't find what you are looking for? Enter the information manually&nbsp;<a id="A1" href="javascript:__doPostBack(&#39;A1&#39;,&#39;&#39;)">here</a>&nbsp; or
                <a id="A2" href="javascript:__doPostBack(&#39;A2&#39;,&#39;&#39;)">search again</a>
            </div>
        </div>
    </div>
    <div>
        
        <table>
            <tbody><tr>
                <td style="padding-left: 350px">
                </td>
                <td>
                    <img src="./Processingimg.gif" id="img1" style="float: right; visibility: hidden;" alt="Loading">
                </td>
                <td>
                    <input name="btnprog" type="button" id="btnprog" value="Processing.." style="visibility: hidden" align="left" alt="Loading">
                </td>
            </tr>
        </tbody></table>
        
    </div>
    </form>


</body></html>

Простой код, который я пробовал:

    driver.findElement(By.xpath("//input[@name='txtAccountName']")).sendKeys("CRSsolutions_test_" + today + "_tanksafe");

Веб-страница: http://ussbyintv8057.acetst.com/Enterprise_CRS/Login/login1.aspx

Шаги, чтобы попасть на эту страницу:

  1. вход с использованием идентификатора пользователя и пароля 1234 2.Нажмите ссылку «Новая политика», доступную сверху
  2. В списке продуктов выберите «Безопасный резервуар»
  3. Нажмите Далее
  4. На этой странице нам нужно указать имя учетной записи и состояние

КОД HTML

Ответы [ 2 ]

0 голосов
/ 01 декабря 2018

Посмотрите, если U не обнаружил с помощью wait, тогда вам нужно использовать абсолютный xpath, чтобы найти этот элемент.или вы также можете использовать css-селектор.

Некоторое время для угловой веб-страницы обычный xpath не работает для определения местоположения элемента.если он угловой, я рекомендую использовать инструмент Protractor для автоматизации с селеном

В противном случае абсолютный xpath будет работать, если относительный xpath не обнаружил ваш элемент.

0 голосов
/ 30 ноября 2018

Скорее всего, вам просто нужно дождаться появления элемента.Используйте явное ожидание вместо findElement:

WebDriverWait wait = new WebDriverWait(driver, 10);
WebElement txtAccountName = wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//input[@name='txtAccountName']")));
txtAccountName.sendKeys("CRSsolutions_test_" + today + "_tanksafe");

Этот шаблон позволяет ждать до 10 секунд, но вернется быстрее, если условие выполнено.Условие elementToBeClickable гарантирует, что поле является кликабельным, что является необходимым условием для ввода значения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...