定位动态变化的提交元素

locating submit element that is dynamically changing

我正在尝试使用来自 excel 的 selenium webdriver 自动化网页 (www.redfin.com)。根据Firebug,我已经成功定位到文本输入元素和提交元素。当我从 excel 测试它时,它看起来像输入了文本,但即使我手动单击提交按钮,提交也不起作用。

我已经设法跟踪动态变化的属性(data-reactid)。这是我试过的,

Public Sub text()
Dim sel As New SeleniumWrapper.WebDriver 

with sel
    .start "chrome", "https://www.redfin.com/  
    .Open "/"
    .Click "xpath=//input[contains(@data-reactid, '[=10=].0.0.0.0.1.0')]"
    .Type "xpath=//input[contains(@data-reactid, '[=10=].0.0.0.0.1.0')]", "5720 lansdowne ave Philadelphia, PA"  
    .Click "xpath=//input[contains(@data-reactid, '[=10=].0.0.0.0.0')]"
    .stop
end with
End Sub

这是 html 代码的一部分

<form class="SearchBoxForm" data-reactid=".1k616yjndog.0.1.0.0.0.1.[=11=].0.0.0">
     <div class="search-container inline-block" data-reactid=".1k616yjndog.0.1.0.0.0.1.[=11=].0.0.0.0">
        <input class="inline-block SearchButton clickable float-right" type="submit" data-reactid=".1k616yjndog.0.1.0.0.0.1.[=11=].0.0.0.0.0" title="Search" value="" data-rf-test-name="searchButton">
        <div class="InputBox" data-reactid=".1k616yjndog.0.1.0.0.0.1.[=11=].0.0.0.0.1">
           <input class="search-input-box" type="text" data-reactid=".1k616yjndog.0.1.0.0.0.1.[=11=].0.0.0.0.1.0" title="City, Address, School, Agent, Zip" placeholder="City, Address, School, Agent, Zip" value="5600 Lansdowne Ave" aria-invalid="false" tabindex="1" aria-haspopup="true" role="textbox" autocomplete="off" name="searchInputBox" data-rf-test-name="searchBox">
           <input class="btn-clear-search-input clickable" type="button" data-reactid=".1k616yjndog.0.1.0.0.0.1.[=11=].0.0.0.0.1.1" title="Clear">
        </div>
     </div>
    <noscript data-reactid=".1k616yjndog.0.1.0.0.0.1.[=11=].0.0.0.1"></noscript>
</form>

一如既往,我非常感谢任何帮助。谢谢。

伙计们 Webdriver sendkey 成功了。这是..

With Sel
    .start "chrome", "https://www.redfin.com/"
    .Open "/"
    .Click "xpath=//input[contains(@data-reactid, '[=10=].0.0.0.0.1.0')]"
    .findElementByXPath("//input[contains(@data-reactid, '[=10=].0.0.0.0.1.0')]").SendKeys "5617 Lansdowne Ave Philadelphia, PA"

    .executeScript "window.open('http:\www.realtor.com','_blank')" 'open New Tab
    .switchToWindow -1 'switch to new tab
    .findElementByCssSelector("#Location").SendKeys "5617 Lansdowne Ave Philadelphia, PA"
    .Click "id=btnSearchHomePage"
End With

我打算花时间学习 selenium 2 而不是使用 IDE。我希望这也会对其他人有所帮助。