2015-01-27 8 views
0

Я использую Selenium WebDriver и хочу отметить флажок определенного HTML на основе значения столбца с именем MovieType в файле Excel. Флажок должен быть отмечен галочкой, если столбец содержит Yes и неквалифицирован, если он содержит No.Selenium - Как я могу получить текущее состояние флажка?

HTML-код выглядит следующим образом:

<input type="checkbox" onclick="trigger functionA();" tabindex="4" value="vnow" name="movie_Type"/> 

Как я могу установить значение флажка, если мой файл Excel содержит Yes/No, а не vnow? HTML написан другим разработчиком, поэтому мне не разрешено изменять его.

Вот мой Java-код для Selenium:

public static WebElement chkbx_selectMovieType(WebDriver driver, String value) throws Exception{ 
    try{    
     List<WebElement> chkbxMovieType = driver.findElements(By.name("movie_Type")); 
     for(WebElement chkbx : chkbxMovieType){ 
      if(chkbx.getAttribute("value").equalsIgnoreCase(value)) 
       chkbx.click(); 
     } 
    }catch (Exception e){ 
     throw(e); 
    } 
    return element; 
} 

Любое предложение можно только приветствовать. Благодарю.

+0

Просто чтобы мы поняли: вы хотите, чтобы Selenium открывал локальный файл Excel (и извлекал содержимое), если отмечен определенный флажок на веб-странице? Если это так, похоже, что вы на самом деле имеете дело с двумя разными способами: (1) Как читать файл Excel с помощью Java (2) Как взаимодействовать с веб-страницей с помощью Selenium. Кажется, что у вас уже есть вторая часть, поэтому, возможно, вам просто нужно решить * первую часть? ** EDIT: ** Возможно, [это] (http://stackoverflow.com/questions/6202672) или [это] (http://stackoverflow.com/questions/14190556) поможет вам. – GoBusto

+0

Возможный дубликат [Как читать данные excel в java, тестирование селена?] (Http://stackoverflow.com/questions/14190556/how-to-read-excel-data-in-java-selenium-testing) – GoBusto

+0

Привет @GoBusto, я знаю, как это сделать (1) & (2), так как значение checkbox в html не является ни «y, n, true, либо false», как я могу превратить его в «y, n, true , или false ", поэтому в файле Excel файл является ключом к считываемому значению (например,g true), то selenium проверит флажок, если столбец excel для значения MovieType равен true – christo

ответ

0

Похоже, что решением было бы использовать свойство checked, а не атрибут value, как описано here.

checkbox: A флажок. Вы должны использовать атрибут value для определения значения, представленного этим элементом. Используйте атрибут checked, чтобы указать, выбран ли этот элемент. Вы также можете использовать неопределенный атрибут, чтобы указать, что флажок находится в неопределенном состоянии (на большинстве платформ это рисует горизонтальную линию по флажку).

Например, следующий Javascript добавляет новый флажок страницы и журналы проверяемый-Несс в консоли браузера:

"use strict"; 

var x = document.body.appendChild(document.createElement("input")); 
x.setAttribute("type", "checkbox"); 

console.log(x.checked); 

Более подробную информацию можно найти here.

Таким образом, кажется, что вам просто нужно изменить эту строку в коде Java:

if(chkbx.getAttribute("value").equalsIgnoreCase(value)) 

EDIT: Смотрите this answer для получения дополнительной информации о том, проверенной-ности флажка с помощью Selenium Java API.

+0

'if (chkbx.getAttribute (" checked "). EqualsIgnoreCase (value))' then in excel value Я должен указать, что указать для проверки или непроверенного действия? – christo

+0

Вы бы так подумали, не так ли? Но не совсем - по одному из комментариев по [этому вопросу] (http://stackoverflow.com/questions/901712), кажется, что 'checked' является * свойством *, а не атрибутом *, поэтому' getAttribute() 'не будет работать. Вот почему мой пример Javascript использует 'x.checked', а не' x.getAttribute («checked») 'при регистрации флажка в консоли браузера. – GoBusto

+0

Я думаю, вы неправильно поняли мой вопрос. Я хочу установить 'y' или' n' в excel, а не html. если данные excel являются «y», флажок будет установлен. – christo

1

Чтобы узнать, есть ли состояние элемента флажка, используйте метод .isSelected(). Это вернет логическое значение, и это может быть условием получения доступа к документу Excel или нет.

Смежные вопросы