Ошибка при выполнении автоматизации селена для Dojo: Исключение в потоке "main" org.openqa.selenium.TimeoutException :? - PullRequest
0 голосов
/ 29 мая 2018

Как вывести путь для следующего, который в DOJO?Это выпадающийНа этой странице много элементов, но некоторые элементы, подобные этому, не идентифицируются, несмотря на предоставление правильного xpath.

Код для выбора стрелки раскрывающегося списка:

<div class=" dijitSelect dijitValidationTextBox dijitSelectError dijitValidationTextBoxError dijitError dijitSelectHover dijitValidationTextBoxHover dijitSelectErrorHover dijitValidationTextBoxErrorHover dijitErrorHover dijitHover" lang="en" widgetid="accountType" aria-expanded="false">
<table id="accountType" class="dijit dijitReset dijitInline dijitLeft dijitSelect dijitValidationTextBox dijitDownArrowButton" cellspacing="0" cellpadding="0" aria-haspopup="true" role="listbox" data-dojo-attach-point="_buttonNode,tableNode,focusNode" style="-moz-user-select: none;" tabindex="0" aria-required="true" aria-labelledby="addAccountRecordMain_accountType">
<tbody role="presentation">
<tr role="presentation">
<td class="dijitReset dijitStretch dijitButtonContents" role="presentation">
<td class="dijitReset dijitRight dijitButtonNode dijitArrowButton dijitDownArrowButton dijitArrowButtonContainer" role="presentation" data-dojo-attach-point="titleNode">

Элемент в стрелке раскрывающегося списка:

<div id="accountType_menu" class="dijit dijitMenu dijitReset dijitSelectMenu dijitValidationTextBoxMenu hdxSelectDropDownPopup accountTypePopup dijitMenuActive" style="overflow: hidden; top: 0px; visibility: visible; max-height: none; width: 331px; height: 270px;" role="presentation" widgetid="accountType_menu" tabindex="0">
<table class="dijitReset dijitMenuTable" cellspacing="0" data-dojo-attach-event="onkeypress:_onKeyPress" tabindex="0" role="listbox" style="width: 100%;">
<tbody class="dijitReset" data-dojo-attach-point="containerNode">
<tr id="dijit_MenuItem_43" class="dijitReset dijitMenuItem" tabindex="-1" role="option" data-dojo-attach-point="focusNode" aria-labelledby="dijit_MenuItem_43_text dijit_MenuItem_43_accel" style="-moz-user-select: none;" aria-disabled="false" widgetid="dijit_MenuItem_43">
<tr id="dijit_MenuItem_44" class="dijitReset dijitMenuItem dijitMenuItemHover dijitHover dijitMenuItemFocused dijitMenuItemHoverFocused dijitHoverFocused dijitFocused dijitMenuItemSelected" tabindex="0" role="option" data-dojo-attach-point="focusNode" aria-labelledby="dijit_MenuItem_44_text dijit_MenuItem_44_accel" style="-moz-user-select: none;" aria-disabled="false" widgetid="dijit_MenuItem_44">
<td class="dijitReset dijitMenuItemIconCell" role="presentation">
<td id="dijit_MenuItem_44_text" class="dijitReset dijitMenuItemLabel" data-dojo-attach-point="containerNode" colspan="2">FA-FA</td>
<td id="dijit_MenuItem_44_accel" class="dijitReset dijitMenuItemAccelKey" data-dojo-attach-point="accelKeyNode" style="display: none"/>

Различные комбинации, которые я использовал для выбора этого элемента: ->

drive.findElement(By.xpath("//div[@id='accountType_dropdown']/div/div[1]/div/table/tbody/tr[2]/td[2]")).click();

drive.findElement(By.xpath("//td[@id='dijit_MenuItem_44_text'][contains(text(),'FA-FA')]")).click();

->

drive.findElement(By.xpath("//div/table[@id='accountType']/tbody/tr/td/div[2]")).click();

drive.findElement(By.xpath("//table[@id='accountType']/tbody/tr/td[2]")).click();

Сообщение об ошибке, которое я получаю:

Исключение в потоке "main"org.openqa.selenium.ElementNotVisibleException: невозможно щелкнуть по элементу (ПРЕДУПРЕЖДЕНИЕ: сервер не предоставил никакой информации о трассировке стека)

Я даже пытался использовать ожидание Webdriver и исполнитель Javascript, но все еще не работает.

...