2016-07-06 5 views
0

Я имею дело с сайтом со следующей структуройКак нажимать на ссылку, что многие имеют пробелы?

<div class="col-3" 
    <field-input> 
    <div class=" group-4"> 
     <input> #Lets call this input 1 </input> 
    <field-input> 
    <div class=" group-4"> 
     <input> #Lets call this input 2 </input> 

Я хочу передать значения input field 1 и input field 2. Как я могу это сделать? Я попытался следующие, и это дает мне ошибку говоря

не может найти элементы

driver.find_element(:xpath, "//field-input/div/input").send_keys("myvalue") 

Как я мог это сделать?

+0

Ваш локатор выглядит хорошо, это в IFRAME? – JeffC

+0

Нет, его нет. его имена угловых классов –

+0

Локатор соответствует обоим входам. Попробуйте "(// field-input/div/input) [1]", чтобы выбрать первый. Альтернативой было бы сохранить ваш xpath, но используйте find_elements(), затем работайте с обнаруженными элементами для отправки ключей. –

ответ

0

Можете ли вы попробовать добавить атрибут класса к вашему XPATH так, что она становится:

"//div[@class=' group-4']/input[1]" 
0

Вы должны осуществлять Selenium::WebDriver::Wait до элемента видно, как показано ниже: -

wait = Selenium::WebDriver::Wait.new(timeout: 10) 
el = wait.until { driver.find_element(:xpath, "(//div[normalize-space(@class) = 'group-4']/input)[1]").visible? } 
el.send_keys("myvalue") 

Примечание: - Если хотите получить доступ ко второму вводу только сменить использовать (//div[normalize-space(@class) = 'group-4']/input)[2] as xPath

Надеюсь, это вам поможет .. :)

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