Почему элемент определения селена Xpath не удалось в IE, но он работает в Firefox - PullRequest
1 голос
/ 12 декабря 2010

У меня есть сценарии тестирования автоматизации селена, запущенные в Firefox, и они работают хорошо. Теперь я хочу запустить сценарии в IE, похоже, что он не прошел на этапе нахождения элемента в GUI. Кажется, что selenium не может найти элемент в GUI, в то время как firefox может легко его найти.

String servicenameidtext = "//table[@id='release_hostsProcesses_list']/tbody/tr[2]/td[1]/td";
Selenium.getText(servicenameidtext );

На самом деле, сценарии записываются селен-IDE, и я проверил Xpath, я думаю, что нет проблем с элементом. Но почему селену не удалось на этом этапе в IE?

Может кто-нибудь сказать мне причину? А как решить проблему при запуске теста в IE? Большое спасибо!

Я хочу найти элемент "alarmlm" из графического интерфейса пользователя по

String servicenameidtext = "// table [@ id = 'release_hostsProcesses_list'] / tbody / tr [2] / td [1] / td";

P.S:  The html of the part:
<tbody><tr class="form-title"><td colspan="3"><a href="javascript:void(0);" onclick="javascript:ChangeVisibility( 'release_hostsSoftwareInformation' ); return false;"><img src="img/minus.png" title="-" alt="-"></a>&nbsp;<b>Software Information</b>
</td></tr><tr><td><div id="release_hostsSoftwareInformation_internal">
<table id="release_hostsProcesses_list" border="0" width="100%" class="Processes_list"><tbody>
<tr class="title-column"><td><b>Service Name</b></td><td><b>Summary</b></td><td><b>Description</b></td><td><b> Version </b></td><td><b>Release</b></td><td colspan="2"><b>Installation Date</b></td></tr><tr><td>alarmlm</td><td>mpm</td><td>MultiPlatformManagement tools</td><td>4.0.12</td><td>5</td><td>Wed 10 Nov 2010 04:23:52 AM CST</td></tr><tr><td>annlabclient</td><td>Annlab Client</td><td>Annlab Client</td><td>5.0.13</td><td>23</td><td>Wed 10 Nov 2010 04:23:57 AM CST</td></tr><tr><td>annlabserver</td><td>Annlab Server</td><td>Annlab Server</td><td>5.0.13</td><td>23</td><td>Wed 10 Nov 2010 04:23:57 AM CST</td></tr><tr><td>recoveryalarmlm</td><td>mpm</td><td>MultiPlatformManagement tools</td><td>4.0.12</td><td>5</td><td>Wed 10 Nov 2010 04:23:52 AM CST</td></tr><tr><td>recoverystatlm</td><td>mpm</td><td>MultiPlatformManagement tools</td><td>4.0.12</td><td>5</td><td>Wed 10 Nov 2010 04:23:52 AM CST</td></tr><tr><td>mrfctrl</td><td>MRF Controller</td><td>mrfctrl - including sipproxySubsystem</td><td>1.4.0.5</td><td>1</td><td>Wed 10 Nov 2010 04:24:00 AM CST</td></tr></tbody></table></div></td></tr></tbody>

Спасибо всем, проблема решена. Причина в том, что HTML в Firefox и IE не совпадают. Странно.

Ответы [ 4 ]

2 голосов
/ 12 декабря 2010

Может быть, из-за пространства имен по умолчанию?

Объяснение ошибки содержится в данных, которые вы нам не показывали - как насчет предоставления (x) HTML-текста?

ОБНОВЛЕНИЕ :

Теперь ОП предоставил исходный (x) HTML-документ.Предоставленное выражение XPath:

//table[@id='release_hostsProcesses_list']/tbody/tr[2]/td[1]/td

не выбирает требуемый элемент просто потому, что td никогда не является потомком другого td, , но это именно то, что этот XPathВыражение ищет - оно заканчивается на:

td[1]/td
1 голос
/ 13 декабря 2010

Попробуйте использовать все строчные символы в поле id:

String servicenameidtext = "//table[@id='release_hostsprocesses_list']/tbody/tr[2]/td[1]/td";
Selenium.getText(servicenameidtext );

Должно работать как в FF, так и в IE

1 голос
/ 13 декабря 2010

Вы можете попытаться проверить, какое текстовое значение есть непосредственно в IE, добавив / text () к выражению xpath. Может быть, он найдет пустую строку?

String servicenameidtext = "//table[@id='release_hostsProcesses_list']/tbody/tr[2]/td[1]/td/text()";
alert("found:"  + servicenameidtext);

Мои два цента,

0 голосов
/ 04 апреля 2014

В этом случае мы можем сделать 1 вещь

Для проверки элементов доступна Internet Explorer IE Developer Tools и для FireFox Firebug

Мы можем сравнить обе проверки Извлечь XPath / CSS из IEИнструменты разработчика для объекта.

Используйте и проверьте, работает ли он как в IE, так и в FF

Если он работает нормально, в противном случае при определенных условиях мы можем использовать соответствующий XPath в соответствии с браузерами.

...