如何抓住從硒下面的代碼值的webdriver使用Java如何使用硒的webdriver
<script id="metamorph-0-start" type="text/x-placeholder"/>
[email protected]
<script id="metamorph-0-end" type="text/x-placeholder"/>
如何抓住從硒下面的代碼值的webdriver使用Java如何使用硒的webdriver
<script id="metamorph-0-start" type="text/x-placeholder"/>
[email protected]
<script id="metamorph-0-end" type="text/x-placeholder"/>
我可能會回答搶從佔位電子郵件:
String email = driver.findElement(By.xpath("id('metamorph-0-start')/..')")).getText();
但是這隻有在沒有其他兄弟姐妹/後代的情況下才有效。
我要去承擔一些事情,一個是你的HTML居然是:
<script id="metamorph-0-start" type="text/x-placeholder"></script>
[email protected]
<script id="metamorph-0-end" type="text/x-placeholder"></script>
要真的只是獲得的電子郵件,我會做這個使用Javascript:
String email = (String) ((JavascriptExecutor)driver).executeScript(
"return arguments[0].nextSibling.textContent.split('\\n')[1]",
driver.findElement(By.id("metamorph-0-start")));
你也可以在Java中而不是在Javascript中進行換行。
沒有關於頁面(或包含元素)的更多知識,我認爲TunaBum有最好的答案。
這就是說,基於假定這是唯一的電子郵件地址(或相當的文字與at符號在INT)頁面上,你可以做
String email = driver.findElement(By.xpath("//*[contains(text(),'@')]")).getText();
那得到的文本元素在其文本中包含@
。
如果您的包含元素中有多個metamorph-number-start/end
,並且其中每個都包含一些文本,那麼JS是您的唯一路徑,因爲WebDriver
還不能使用文本節點。
第一個表達式對我來說似乎很陌生。它是否有效XPath 1.0?我期望'// @ [@ id ='metamorph-0-start']/..' –
@Slanec聖潔的廢話,它是! http://www.w3.org/TR/xpath/#function-id沒有它我怎麼能生活? –