Перейти к содержимому

Фотография

Selenium и графика


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 6

#1 LarianVonLich

LarianVonLich

    Новый участник

  • Members
  • Pip
  • 46 сообщений


Отправлено 01 сентября 2011 - 12:58

Как определить присутствие картинки на странице?
Картинка может быть разная в одном и том же месте.

то она 1.png то 2.png

Код картинки
<img src="/images/1.png">

Как мне проверить, что сейчас 1.png?

что бы не читать все ниже вот решение моего вопроса:

$this->assertTrue($this->isElementPresent("//div[@id='container']/div[3]/div/table/tbody/tr[3]/td/img[2][contains(@src, '1.png')]"));
  • 0

#2 Demetri

Demetri

    Активный участник

  • Members
  • PipPip
  • 143 сообщений
  • ФИО:Дмитрий
  • Город:Podgorica, MNE


Отправлено 01 сентября 2011 - 15:15

Java, WebDriver:
String img_name = webdriver.findElement(By.xpath("//xpath/to/img")).getAttribute("src").replace("/images/","");
if(img_name.equals("1.png"))
System.out.println("Картинка 1.png");
else
System.out.println("Картинка 2.png");

  • 1
Hi! I'm a signature virus. Copy me into your signature to help me spread.

#3 LarianVonLich

LarianVonLich

    Новый участник

  • Members
  • Pip
  • 46 сообщений


Отправлено 02 сентября 2011 - 06:46

а можно пример на PHP.
я в яве совсем никак не шарю.
  • 0

#4 Jenka156

Jenka156

    Активный участник

  • Members
  • PipPip
  • 137 сообщений
  • ФИО:Женя


Отправлено 02 сентября 2011 - 07:07

если картинка только одна на странице, то можно еще так:

$this->assertTrue($this->isElementPresent("//img[contains(@src, 'png')]"));

  • 1

#5 LarianVonLich

LarianVonLich

    Новый участник

  • Members
  • Pip
  • 46 сообщений


Отправлено 02 сентября 2011 - 08:25

если картинка только одна на странице, то можно еще так:

$this->assertTrue($this->isElementPresent("//img[contains(@src, 'png')]"));

а если их несколько? и одних и теже?

Изображение
мне надо проверить что присутствуют на странице картинки-галочки. а они под названием 1.png

эти картинки находятся вот так //div[@id='container']/div[3]/div/table/tbody/tr[3]/td/img[2]

но мне надо именно что бы еще и проверка на значение была. показывается 1 или 2. на пример точка сказать, чо должна быть отображена 1. и все.
и вот этого сделать не знаю как.
  • 0

#6 Demetri

Demetri

    Активный участник

  • Members
  • PipPip
  • 143 сообщений
  • ФИО:Дмитрий
  • Город:Podgorica, MNE


Отправлено 02 сентября 2011 - 09:05

Selenium RC 1.x используется?

Сначала проверяешь что картинка присутствует по XPath, а затем проверяешь атрибут SRC. Проверка атрибута SRC будет выглядеть примерно так:
$src_value = $this->getAttribute("//div[@id='container']/div[3]/div/table/tbody/tr[3]/td/img[2]@src");
$img_name = "1.png";

$match = strpos($src_value, $img_name);

if ($match === false) {
    echo "Картинка X.png";
} else {
    echo "Картинка 1.png";
}
Я уже успел подзабыть PHP серьезно, поэтому более подробно расписать вот сразу вряд ли смогу :)

А можно и совместить в более сложном XPath локаторе:
$this->assertTrue($this->isElementPresent("//div[@id='container']/div[3]/div/table/tbody/tr[3]/td/img[2][contains(@src, '1.png')]"));

  • 1
Hi! I'm a signature virus. Copy me into your signature to help me spread.

#7 LarianVonLich

LarianVonLich

    Новый участник

  • Members
  • Pip
  • 46 сообщений


Отправлено 02 сентября 2011 - 09:42

Selenium RC 1.x используется?

Сначала проверяешь что картинка присутствует по XPath, а затем проверяешь атрибут SRC. Проверка атрибута SRC будет выглядеть примерно так:

$src_value = $this->getAttribute("//div[@id='container']/div[3]/div/table/tbody/tr[3]/td/img[2]@src");
$img_name = "1.png";

$match = strpos($src_value, $img_name);

if ($match === false) {
    echo "Картинка X.png";
} else {
    echo "Картинка 1.png";
}
Я уже успел подзабыть PHP серьезно, поэтому более подробно расписать вот сразу вряд ли смогу :)

А можно и совместить в более сложном XPath локаторе:
$this->assertTrue($this->isElementPresent("//div[@id='container']/div[3]/div/table/tbody/tr[3]/td/img[2][contains(@src, '1.png')]"));



да использую RC1

я вляз решение, которое ты предложил второе
$this->assertTrue($this->isElementPresent("//div[@id='container']/div[3]/div/table/tbody/tr[3]/td/img[2][contains(@src, '1.png')]"))
Сработало. все ок!
Большое спасибо за все предсталенные решения. Побольше бы такиз людей на этот форум...
  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных