Как я могу искать текст и заливку/щелчок на ссылке с Селеном?

Вот соглашение:

Существует ли способ искать входное имя, или ведьма типа не точна, и заполните его?

Например, я хочу заполнить любой вход электронной почтой имени с моей электронной почтой, но у меня, возможно, есть некоторые исходные данные, названные электронной почтой 123, emailemail, электронные письма и т.д... Существует ли способ сделать что-то как * электронная почта *?

И как я могу нажать на ссылку, проверяющую некоторый текст, который мог быть на ссылке, или выше ссылки, или близко, или в классе и т.д.?

PS: я использую язя селена с Firefox

1
задан Bruno 'Shady' 2 May 2010 в 01:32
поделиться

2 ответа

Вы можете использовать Xpath, чтобы найти его, например, // input [contains (@ name, 'email') . Если у вас есть несколько таких экземпляров на странице, стоит перенести тест на ваш любимый язык программирования, а затем выполнить

emailInstances = sel.get_xpath_count("//input[contains(@name,'email')]")
for i in range(int(emailInstances)):
  sel.type("//input[contains(@name,'email')]["+ i + 1 +"]","email@address.tld")
2
ответ дан 3 September 2019 в 00:54
поделиться

Xpath работает хорошо, и решение выше хорошо. Если вы пытаетесь протестировать старые версии IE, вы также можете использовать инъекцию JavaScript. Я считаю, что это очень быстро, хотя может быть немного сложнее отладить. На самом деле я не проверял, работает ли приведенное ниже, но, надеюсь, это дает вам представление о том, что вы можете сделать:

    String javaScript = "_sl_enterEmailStr = function(parentObj,str) {      "+
            "     var allTags = parentObj.getElementsByTagName('input');    "+
            "     for (var i = 0; i < allTags.length; ++i) {                "+
            "         var tag = allTags[i];                                 "+
            "         if (tag.name && tag.type && tag.type === 'text'       "+
            "             && tag.name.match(/email/)) {                     "+
            "             tag.value = str;                                  "+
            "         }                                                     "+
            "     }                                                         "+
            "};                                                             "+
            "_sl_enterEmailStr(this.browserbot.getCurrentWindow().document  "+
            "                   ,'myemail@mydomain.org');                   ";


     mySelenium.getEval(javaScript);

Я считаю, что внедрение JavaScript с помощью регулярных выражений позволяет мне делать отличные вещи с динамическими полями ввода. Обратите внимание, что вы можете использовать findElement (), чтобы уточнить, где искать теги.

Что касается щелчка по ссылке и получения текста, это простые операции click () и getText (), которые могут быть выполнены при наличии подходящего локатора. Я бы посмотрел на селен API. например, вот ссылка на Java для 1.0b2 .

0
ответ дан 3 September 2019 в 00:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: