![](/img/trans.png)
[英]Assert that a WebElement is not present using Selenium WebDriver with java
[英]Selenium Webdriver Java: Checking if a piece of script is present
我有以下一段HTML代碼:
<html>
<head>
<script>bladibla</script>
<script>bladibla</script>
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-Bla', 'auto');
ga('send', 'pageview');
</script>
</head>
<body>
</body>
</html>
我想測試是否“ go('send','pageview');” 出現在特定的代碼段中。
我已經嘗試了以下方法,但這似乎不起作用:
String header = driver.findElement(By.xpath("//head[@'script'")).getText();
Assert.assertTrue(header.contains("go('send', 'pageview');"));
有人知道我如何讓Selenium Webdriver檢查“ go('send','pageview');”的存在。 在網頁標題中的腳本標簽中? GetText似乎不起作用,因為它是一個腳本...
直接從Selenium Webdriver文檔中獲取。 我建議您在詢問之前多擺弄:)
“按標簽名”元素的DOM標簽名。
如何查找看起來像這樣的元素的示例
<iframe src="..."></iframe>
用Java編寫:
WebElement frame = driver.findElement(By.tagName("iframe"));"
更改這里的內容,您可以像這樣使用:
String header = driver.findElement(By.tagName("script")).getText();
並在該標頭中搜索包含。
希望對您有所幫助PS:鏈接http://docs.seleniumhq.org/docs/03_webdriver.jsp#by-tag-name
Selenium具有與瀏覽器相同的安全限制,並且您無法通過DOM API查看JavaScript源。
您可以查看網頁視圖是否通過使用hitCallback發送的,例如:
window.gaHitSent = false;
ga('send', 'pageview', {
'hitCallback': function() {
window.gaHitSent = true;
}
});
然后可以使用Selenium檢查變量。 我不是Java開發人員,因此我正在關注http://www.guru99.com/execute-javascript-selenium-webdriver.html :
JavascriptExecutor js = (JavascriptExecutor)driver;
Boolean sent = js.executeScript("return typeof(gaHitSent) !== 'undefined' && gaHitSent");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.