2016-04-22 3 views
0

См. Приведенный ниже код и помогите мне найти Xpath. Я новичок в селене.Я не могу установить флажок у selenium Web-драйвер

<label class="checkbox"> 
<input class="chk-input" type="checkbox" data-bind="value: Value" value="3806"> 
<span data-bind="text: Text">GYM</span> 
</label> 
+0

Какой код вы пытались и в чем был результат? – JeffC

+0

Я использовал -> WebElement checkbox = driver.findElement (By.xpath ("// input [@ value = '3806']")); checkbox.click(); –

ответ

0

Привет выбрать флажок, пожалуйста, как на скриншоте ниже

driver.findElement(By.xpath("//*[@value='3806']")).click(); 

UPDATE

WebDriverWait wait = new WebDriverWait (drv,20); 
    // for location 
    wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("location"))); 
    drv.findElement(By.xpath("location")).click(); 
    // for Position 
    wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("Position"))); 
    drv.findElement(By.xpath("Position")).click(); 
+0

Привет, спасибо за ранний ответ, но я не смог проверить его из-за следующей ошибки: Данный селектор // [@ value = '3806'] либо недействителен, либо не приводит к использованию WebElement. Произошла следующая ошибка: InvalidSelectorError: невозможно найти элемент с выражением xpath // [@ value = '3806'] из-за следующей ошибки: SyntaxError: выражение не является юридическим выражением. Продолжительность или таймаут команды: 51 миллисекунды –

+0

Да, в тот момент времени это была ошибка типографии с моей стороны, я извиняюсь за это, но теперь у меня есть обновление, так же, что и у вас не будет такой же ошибки –

+0

Требования Изменение: при запуске Расположение и положение будут в скрытом режиме, они будут заполняться, когда я выбираю Facility, как показано на первом изображении. После выбора Facility тогда отобразится только Location & Position, как показано на рисунке 2. Теперь код не работает. Любая идея –

0

Чтобы найти флажок элемента с выражением XPath, используйте следующий формат:

//tagName[@attribute='value'] 
  • // указывает на поиск по всей DOM для требуемого элемента.

  • tagName указывает, какой тип элемента вы ищете. Для вашего примера это будет input.

  • [@attribute='value'] является предикатом только для возврата элементов, у которых есть атрибут, равный указанному значению. Для вашего примера вы можете использовать [@value='3806'] или [@class='chk-input'].

Так кусочкам, мы можем использовать следующие как выражение XPath, чтобы найти свой флажок:

//input[@value='3806'] или //input[@class='chk-input']

Наконец, щелкнуть элемент, который вы можете просто использовать WebElement.click() как так:

WebElement checkbox = driver.findElement(By.xpath("//input[@value='3806']")); 
checkbox.click(); 
+0

Изменение требований: при запуске Location и Position будут находиться в режиме скрытия, они будут заполняться, когда я выберу Facility, как показано на первом изображении. После выбора Facility тогда отобразится только Location & Position, как показано на рисунке 2. Теперь код не работает. Есть идеи –