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

Фотография

AssetText в storeEval


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

#1 Fobos

Fobos

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

  • Members
  • Pip
  • 15 сообщений
  • ФИО:Степанов М.А.

Отправлено 14 ноября 2016 - 14:59

Я активно пользуюсь найденной на просторах сети командой if (selenium.isElementPresent(..., например

if (selenium.isElementPresent(`xpath=(/html/body/div[1]/div/div[3]/div/section/div/div[3]/div[1]/table/tbody/tr[1]/td[12]/a[7])`) == true) {nextMove = `delete`} else {nextMove = `arhiv`}

таким образом проверяя наличие элемента и в зависимости от этого совершая дальнейшие действия.

 

Однако теперь мне нужно проверять уже не наличие элемента, а текст в нем (в моем случае - даты 01.01.2017)

 

Как правильно записать эту команду? У меня получилось что-то типа

if (selenium.isText(//table[@id='DataTables_Table_0']/tbody/tr/td[2]`) == `01.01.2017`) {nextMove = `create1`} else {nextMove = `next1`}

Но это не работает. Ошибка [error] Threw an exception: expected expression, got end of script. А как должно быть?


  • 0

#2 Lzk

Lzk

    Специалист

  • Members
  • PipPipPipPipPip
  • 504 сообщений
  • ФИО:Олег
  • Город:Мск

Отправлено 14 ноября 2016 - 15:04

String elTxt = driver.findElement(By.xpath('//table[@id='DataTables_Table_0']/tbody/tr/td[2]')).getText();

if (elTxt.equals("01.01.2017")) ...

пример на JAVA


  • 1

#3 Fobos

Fobos

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

  • Members
  • Pip
  • 15 сообщений
  • ФИО:Степанов М.А.

Отправлено 14 ноября 2016 - 15:07

String elTxt = driver.findElement(By.xpath('//table[@id='DataTables_Table_0']/tbody/tr/td[2]')).getText();

if (elTxt.equals("01.01.2017")) ...

пример на JAVA

 

 

А как это должно выглядеть в виде команды для IDE?


  • 0

#4 Lzk

Lzk

    Специалист

  • Members
  • PipPipPipPipPip
  • 504 сообщений
  • ФИО:Олег
  • Город:Мск

Отправлено 14 ноября 2016 - 15:15

 

String elTxt = driver.findElement(By.xpath('//table[@id='DataTables_Table_0']/tbody/tr/td[2]')).getText();

if (elTxt.equals("01.01.2017")) ...

пример на JAVA

 

 

А как это должно выглядеть в виде команды для IDE?

 

verifyText | '//table[@id='DataTables_Table_0']/tbody/tr/td[2]' | "01.01.2017"


  • 0

#5 Fobos

Fobos

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

  • Members
  • Pip
  • 15 сообщений
  • ФИО:Степанов М.А.

Отправлено 14 ноября 2016 - 15:18

Что-то я совсем запутался. Команда verifyText ведь просто проверяет наличие текста, а мне нужна вариативность.

 

Типа if (selenium.isVerifyText..., но это не работает.


  • 0

#6 Lzk

Lzk

    Специалист

  • Members
  • PipPipPipPipPip
  • 504 сообщений
  • ФИО:Олег
  • Город:Мск

Отправлено 14 ноября 2016 - 15:22

я не особо знаком с IDE ,если честно, но если ты это можешь засунуть в if , то это то что тебе нужно )


  • 0

#7 Fobos

Fobos

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

  • Members
  • Pip
  • 15 сообщений
  • ФИО:Степанов М.А.

Отправлено 14 ноября 2016 - 15:24

В том и дело, что не могу. Проверять наличие элемента могу, а вот проверять наличие текста в элементе - нет. Нуб-с(


  • 0

#8 Lzk

Lzk

    Специалист

  • Members
  • PipPipPipPipPip
  • 504 сообщений
  • ФИО:Олег
  • Город:Мск

Отправлено 14 ноября 2016 - 15:40

var elTxt = driver.findElement(By.xpath('//table[@id='DataTables_Table_0']/tbody/tr/td[2]')).getText();

if (elTxt.equals("01.01.2017")) ...

попробуй так


  • 1

#9 Snap

Snap

    Специалист

  • Members
  • PipPipPipPipPip
  • 980 сообщений
  • ФИО:Роман
  • Город:Москва


Отправлено 15 ноября 2016 - 15:00

А как это должно выглядеть в виде команды для IDE?

А что вы подразумеваете под "IDE"?


  • 0

#10 Fobos

Fobos

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

  • Members
  • Pip
  • 15 сообщений
  • ФИО:Степанов М.А.

Отправлено 17 ноября 2016 - 11:49

 

А как это должно выглядеть в виде команды для IDE?

А что вы подразумеваете под "IDE"?

 

 

Я имел ввиду команду для Selenium IDE

 

Типа

storeEval
if (selenium.isElementPresent(`xpath=(/html/body/div[1]/div/div[3]/div/section/div/div[3]/div[1]/table/tbody/tr[1]/td[12]/a[7])`) == true) {nextMove = `delete`} else {nextMove = `arhiv`}
nextMove

  • 0

#11 Snap

Snap

    Специалист

  • Members
  • PipPipPipPipPip
  • 980 сообщений
  • ФИО:Роман
  • Город:Москва


Отправлено 17 ноября 2016 - 12:20

Я имел ввиду команду для Selenium IDE

Типа

storeEval
if (selenium.isElementPresent(`xpath=(/html/body/div[1]/div/div[3]/div/section/div/div[3]/div[1]/table/tbody/tr[1]/td[12]/a[7])`) == true) {nextMove = `delete`} else {nextMove = `arhiv`}
nextMove

Похоже у вас какой-то плагин дополнительный установлен? В стандартном Selenium IDE таких команд как "selenium.isElementPresent" и "if", насколько мне известно, нет.


  • 0

#12 Fobos

Fobos

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

  • Members
  • Pip
  • 15 сообщений
  • ФИО:Степанов М.А.

Отправлено 17 ноября 2016 - 13:26

 

Я имел ввиду команду для Selenium IDE

Типа

storeEval
if (selenium.isElementPresent(`xpath=(/html/body/div[1]/div/div[3]/div/section/div/div[3]/div[1]/table/tbody/tr[1]/td[12]/a[7])`) == true) {nextMove = `delete`} else {nextMove = `arhiv`}
nextMove

Похоже у вас какой-то плагин дополнительный установлен? В стандартном Selenium IDE таких команд как "selenium.isElementPresent" и "if", насколько мне известно, нет.

 

 

Да, это плагин, не помню названия(( Я думал он у всех есть


  • 0

#13 TatyanaV

TatyanaV

    Опытный участник

  • Members
  • PipPipPipPip
  • 388 сообщений
  • ФИО:Воробьева Татьяна


Отправлено 17 ноября 2016 - 14:17

 

Да, это плагин, не помню названия(( Я думал он у всех есть

 

Мне кажется народ в основном просто переходит на WebDriver, как только начинают требоваться условия.


  • 0


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

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