Я новичок в тестировании автоматизации Selenium
Получение ошибки Selenium
Когда я пытаюсь запустить приведенный ниже код каждый раз, когда я получаю сообщение об ошибке "org.openqa.selenium.TimeoutException: ожидаемое условие не выполнено: ожидание видимости элемента, расположенного по By.xpath" Я не уверен, какой xpate может быть один, пожалуйста, помогите мне
Создан контрольный пример автоматизации для приложения входа в систему.
Java
@Test
public void enterApplicationCerdentials(String userName, String password) {
WebDriverWait wait = new WebDriverWait(driver, 50);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//frameset/frame/html/body/div([@class='tintedBox' and @id='loginBox']/table/tbody/tr/td/input[@id='UserID' and name='UserID'])"))).sendKeys(userName);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("Password"))).sendKeys("CSRWHKXESB");
captureScreen();
}
HTML:
<frameset rows="*, 1">
<frame src="Script/Login.asp?">
#document
<!--Function return the password for the user who logged in through Referral URL.
For TAFE user password is not matching as per database value as their URL is dynamic. ENHC0014091
This function splits the URL of that particular user (8527066229) only . -->
<html><head>
<script language="JavaScript">
//<!--
function OnLoad()
{
setTimeout("CheckFrame()", 4000);
}
function CheckFrame()
{
with (parent)
{
if ((length==0 && document.frmCheck==null) ||
(length>0 && frames[1].document.frmCheck==null))
{
var PathName = window.location.pathname;
PathName = PathName.substr(0, PathName.substr(1).indexOf("/") + 1);
location.href = PathName;
}
}
}
//-->
</script></head>
<body onload="OnLoad()" topmargin="0" leftmargin="0" bgcolor="#ffffff" text="#000000" link="#000000" vlink="#000000" alink="#000000">
<div id="login">
<img border="0" src= vspace="10" style="display: block;">
<div class="tintedBox" id="InfoStoreBox">
<h1> <a class="boldLink" href="https://infostore.saiglobal.com" target="_parent"><u>InfoStore</u></a> ?</h1>
<p></p>
<p><a class="boldLink" href="https://infostore.saiglobal.com" target="_parent"></a> .</p>
<p>Not only a shop, <a class="boldLink" href="https://infostore.saiglobal.com" target="_parent"></a> </p>
<p><a href="https://infostore.saiglobal.com" target="_parent"></a></p>
</div>
<div class="tintedBox" id="loginBox">
<h1></h1>
<form name="form" action="Login.asp?" method="post">
<input type="hidden" name="Autologout" value="false">
<input type="hidden" name="Division" value="">
<span class="error"></span>
<table>
<tbody><tr>
<td>User ID</td>
<td><input type="text" size="30" id="UserID" name="UserID" value=""></td>
</tr>
<tr>
<td>Password</td>
<td><input type="password" size="30" id="Password" name="Password" value=""></td>
</tr>
<tr>
<td>Last Name/Location</td>
<td><input type="text" size="30" id="UserName" name="UserName" value=""></td>
</tr>
</tbody></table>
<br>
<font color="#d12b2c"><nobr>Your Last Name and Location are now mandatory to access the platform, simply</nobr><br>enter the details in field (e.g. Smith/Perth)</font>
<br><br>
<div>
<input type="checkbox" id="SaveLogin" name="SaveLogin" value="SaveLogin"><label for="SaveLogin" id="save">Save my login so you can remember me on my next visit.</label>
</div>
<div align="center" style="padding-top:20px">
<input class="button" type="submit" name="Submit" value="Submit">
<input class="button" type="reset" name="Clear" value="Clear">
<input class="button" type="submit" name="Recognize" value="Remember me?">
</div>
<div style="padding-top:20px">
<nobr>Lost password? Contact your internal Administrator or <a class="boldLink" href="mailto:sales@saiglobal.com?subject=Lost SOL password">our Customer Service</a></nobr>
</div>
</form>
</div>
</div>
<div id="footer" onmouseover="ShowTime()">©2014 SAI Global</div>
<script>
function ShowTime()
{
var spTime = document.getElementById("footer");
spTime.innerHTML = "©2014 SAI Global - 20190426 12:25:33.292: 172.20.33.12, 203.27.21.6, 59596377";
}
</script>
</body></html>
Ошибка:
org.openqa.selenium.TimeoutException: ожидаемое условие не выполнено:
ожидание видимости элемента, расположенного By.xpath:
// frameset / frame / html / body / div ([@ class = 'tintedBox' и
@ id = 'loginBox'] / table / tbody / tr / td / input [@ id = 'ID пользователя' и
name = 'UserID']) (пробовали в течение 50 секунд с 500 миллисекундами
интервал)
в org.openqa.selenium.support.ui.WebDriverWait.timeoutException (WebDriverWait.java:95)
в org.openqa.selenium.support.ui.FluentWait.until (FluentWait.java:272)
at seleniumPages.Page_LoginMyApplication.enterApplicationCerdentials (Page_LoginMyApplication.java:67)
at stepDefinitions.StepDefs_DataDrivenLogin.i_login_with_credentials_and (StepDefs_DataDrivenLogin.java:23)
в?. Я вхожу с учетными данными "tomsmith" и "***************" (resources / features / DataDrivenLogin.feature: 7) Причина
by: org.openqa.selenium.InvalidSelectorException: неверный селектор:
Невозможно найти элемент с выражением xpath
// frameset / frame / html / body / div ([@ class = 'tintedBox' и
@ id = 'loginBox'] / table / tbody / tr / td / input [@ id = 'ID пользователя' и
name = 'UserID']) из-за следующей ошибки: SyntaxError: Не удалось
выполнить «оценить» в «документе»: строка
'// frameset / frame / html / body / div ([@ class =' tintedBox 'и
@ id = 'loginBox'] / table / tbody / tr / td / input [@ id = 'ID пользователя' и
name = 'UserID']) 'не является допустимым выражением XPath. (Информация о сессии:
chrome = 73.0.3683.103) (информация о драйвере: chromedriver = 2.46.628402
(536cd7adbad73a3783fdc2cab92ab2ba7ec361e1), платформа = Windows NT
6.3.9600 x86_64) (ВНИМАНИЕ: сервер не предоставил никакой информации о трассировке стека). Длительность команды или время ожидания: 0 миллисекунд.
документацию по этой ошибке, пожалуйста, посетите:
https://www.seleniumhq.org/exceptions/invalid_selector_exception.html
Информация о сборке: версия: '3.141.59', ревизия: 'e82be7d358', время:
'2018-11-14T08: 25: 48' Системная информация: хост: 'AP01154W8N', IP:
«192.168.56.1», os.name: «Windows 8.1», os.arch: «amd64», os.version:
'6.3', java.version: '1.8.0_191' Информация о драйвере:
org.openqa.selenium.chrome.ChromeDriver Возможности
{acceptInsecureCerts: false, acceptSslCerts: false,
applicationCacheEnabled: false, browserConnectionEnabled: false,
browserName: chrome, chrome: {chromedriverVersion: 2.46.628402
(536cd7adbad73a ..., userDataDir: C: \ Users \ sinham0 \ AppData \ Lo ...},
cssSelectorsEnabled: true, databaseEnabled: false, goog: chromeOptions:
{debuggerAddress: localhost: 65139}, handlesAlerts: true,
hasTouchScreen: false, javascriptEnabled: true,
locationContextEnabled: true, mobileEmulationEnabled: false,
nativeEvents: true, networkConnectionEnabled: false, pageLoadStrategy:
обычный, платформа: XP, имя платформы: XP, прокси: прокси (), вращающийся:
false, setWindowRect: true, strictFileInteractability: false,
takeHeapSnapshot: true, takeScreenshot: true, тайм-ауты: {неявный:
0, pageLoad: 300000, скрипт: 30000}, непредвиденное оповещение, поведение: игнорировать,
unhandledPromptBehavior: ignore, версия: 73.0.3683.103,
webStorageEnabled: true} Идентификатор сеанса: 869efd2308887ee98e8d561566b5a606
*** Информация об элементе: {Using = xpath, value = // frameset / frame / html / body / div ([@ class = 'tintedBox' и
@ id = 'loginBox'] / table / tbody / tr / td / input [@ id = 'ID пользователя' и
Название 'UserID' =])}
at sun.reflect.GeneratedConstructorAccessor10.newInstance (неизвестный источник)