定位动态变化的提交元素
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。我希望这也会对其他人有所帮助。
我正在尝试使用来自 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。我希望这也会对其他人有所帮助。