2016-07-06 33 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 1input 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

希望它会帮助你.. :)