2017-01-31 8 views
-2

У меня есть веб-сайт, в котором номера сетки не совпадают с указанным первичным ключом. Например, ключ сообщает пользователю, что элемент в таблице - номер 42, когда это только 30-й элемент в сетке, из-за пропусков на основе разрешений. Каков наилучший способ выбора на основе первичного ключа, а не номер сетки в селене?Как найти элемент сетки по содержанию, а не номер сетки в селене

Разъяснение: сказать моя сетка выглядит следующим образом: 6 Ice Cream 11 Hot Dog 24 Cheeseburger 25 Double Cheeseburger 26 Salad

Мороженое может быть выбран через driver.findElement(By.xpath("//*grid-0"); Hot Dog = сетка-1 и т.д ...

Что бы быть лучшим способом вместо этого выбрать icecream по содержимому своего ключа (6)?

я могу перебирать всю сетку с помощью

driver.findElement(By.xpath("//*grid-0")).getText().contains("6"); 

, но тогда у меня есть вопрос о размещении каждого элемента с 6 в нем, а не только мороженое, и я должен пройти всю страницу найти его, что действительно неэффективно.

Любые идеи?

ответ

0

Попробуйте это может быть полезно.

driver.findElement(By.xpath("//*[contains(text(), '6 ')]")); 
+0

Ах, умный, используя пространство после, однако я все еще чувствую, что могу зарегистрировать строку «16». Я попробую добавить пространство до И после этого, и мне кажется, что этого достаточно! Благодаря! –

0

я завелся происходит следующим: driver.findElement(By.linkText("regexp:.* 6 *")).click();

Благодаря Ravi MCA помог мне получить к такому выводу!

EDIT: Это решение работает только для селен IDE, очевидно, webdriver интерпретирует regexp :. как литерал.