Проблема Selenium Xpath при проверке определенного изображения в определенном месте - Internet Explorer 9 (IE9) - PullRequest
1 голос
/ 24 марта 2012

Я новичок в Selenium и столкнулся с проблемой тестового случая в Internet Explorer 9 (IE9). Я использую NUnit для запуска тестового примера, чтобы убедиться, что конкретное изображение присутствует в определенном месте. Тестовый пример проходит в Firefox и Chrome, но не проходит в IE9.

Я слышал, что IE имеет проблемы с Xpath, но не смог найти какой-либо определенной информации по этому вопросу. Есть ли способ заставить эту команду работать в IE, используя Xpath? Есть ли лучший способ, которым я мог бы выполнить эту проверку без Xpath? Применимая информация ниже.

Примечание: я также новичок в C #, поэтому это может быть и проблема C #.

Команда =

Assert.IsTrue(selenium.IsElementPresent("//html/body/form/div[8]/div[3]/div[3]/div[2]/div/div/table/tbody/tr/td/img[@src='images/4a00ac39-be42-46e0-8bd4-5cc786197357.jpg']"));

HTML код для изображения =

<img style="padding-top: 3px; padding-bottom: 0px; background-color: transparent;" src="images/4a00ac39-be42-46e0-8bd4-5cc786197357.jpg">

Путь CSS для изображения =

html body.v4master form#aspnetForm div#s4-workspace div#s4-mainarea.s4-pr div#MSO_ContentTable.s4-ca div.s4-ba div.ms-bodyareacell div#ctl00_MSO_ContentDiv table.maintable tbody tr td img

Дополнительно, команда работает, и тестовый пример проходит в IE9, когда я отбрасываю определенную часть проверки изображения:

Assert.IsTrue(selenium.IsElementPresent("//html/body/form/div[8]/div[3]/div[3]/div[2]/div/div/table/tbody/tr/td/img"));

Ответы [ 2 ]

1 голос
/ 24 марта 2012

Наилучшее предположение: IE нормализует атрибут SRC= для полного URL-адреса изображения.Попробуйте заменить img[src="...'] на img[contains(@src, '...'], что также должно работать с относительным или абсолютным URL.

0 голосов
/ 24 марта 2012

Что сказал Росс Паттерсон.

Кроме того, путь XPath может быть просто неправильным - любая одиночная опечатка или изменение в структуре могут быть фатальными для такого выражения xpath. Попробуйте просто

//img[contains(@src,'images/4a00ac39-be42-46e0-8bd4-5cc786197357.jpg')]

, который ищет любое изображение, содержащее данный источник. Если у вас есть больше этих изображений на странице, это не вариант (или его нужно было бы изменить), но если есть только это, он найдет его.

...