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

Фотография

Помогите, пожалуйста, написать условие...webdriver JS firefox


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

#1 Eugene1111

Eugene1111

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

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

Отправлено 05 января 2021 - 17:36

нужно написать такое условие

 

если строка (text) начинается со слов "you have" и КЛАСС кнопки НЕ "btn-icon active", то нажать на нужную кнопку.

 

 

Подскажите, пожалуйста, как и кнопку найти и сразу взять ее класс?? 

просто найти елемент по классу нельзя, потому что таких кнопок много с таким же классом.

БОЛЬШОЕ СПАСИБО:)

 

 

 

let text = await driver.findElement(By.xpath('/html/body/div[1]/section/div/div/div[2]/div/div[2]/div/div[1]/div[2]/p')).getText();
let theButton = await driver.findElement(By.xpath("/html/body/div[1]/section/div/div/div[2]/div/div[1]/div/div[5]/button[1]").GetAttribute("class"));
if (text.startsWith('You have') && theButton !== "btn-icon active")
{
driver.findElement(By.xpath("/html/body/div[1]/section/div/div/div[2]/div/div[1]/div/div[5]/button[1]")).click();
}
 
 
 
 
получается ошибка TypeError: By.xpath(...).GetAttribute is not a function

  • 0

#2 vladMat

vladMat

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

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

Отправлено 07 января 2021 - 06:47

Вот вам 2 ссылки где можно посмотреть примеры xpath
содержит текст

не содержит класс

 

А код ругается, потому что вы у локатора пытаетесь вызвать метод GetAttribute, которого у него нет, вызывать нужно у элемента на странице. (проблема в скобках)


  • 0

#3 Snap

Snap

    Специалист

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


Отправлено 01 февраля 2021 - 07:27

Как вам подсказали выше правильно будет так

let theButton = await driver.findElement(By.xpath("/html/body/div[1]/section/div/div/div[2]/div/div[1]/div/div[5]/button[1]")).GetAttribute("class");

  • 0


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

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