【问题标题】:How to click on link that many have spaces?如何点击很多有空格的链接?
【发布时间】:2016-07-06 21:37:16
【问题描述】:

我正在处理具有以下结构的网站

<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")

我怎么能这样做?

【问题讨论】:

  • 您的定位器看起来不错,这是在 IFRAME 中吗?
  • 不,不是。它的角度类名
  • 定位器匹配两个输入。尝试“(//field-input/div/input)[1]”选择第一个。另一种方法是保留您的 xpath,但使用 find_elements() 然后使用发现的元素来发送密钥。
  • 您的第一个解决方案似乎不起作用。我是硒的新手。您能否详细说明您的第二个选项,关于如何迭代列中发现的元素?
  • 您能否提供 selenium 抛出的实际错误堆栈跟踪...??

标签: ruby selenium selenium-webdriver


【解决方案1】:

您能否尝试将类属性添加到您的 xPath 中,使其变为:

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

【讨论】:

    【解决方案2】:

    您应该实现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] 更改为 xPath

    希望对你有帮助..:)

    【讨论】:

      猜你喜欢
      • 2020-02-17
      • 1970-01-01
      • 1970-01-01
      • 2016-11-06
      • 2012-09-07
      • 2014-10-06
      • 2021-06-20
      • 2015-11-25
      • 2019-05-24
      相关资源
      最近更新 更多