![](/img/trans.png)
[英]How to Activate AdBlocker in Chrome using Selenium WebDriver?
[英]Activate javascript on Webdriver selenium
我有使用Java編寫的程序,並且使用了Selenium WebDriver。 但是我的腳本沒有看到“打開設備訪問”按鈕,因為它是“顯示:無”。
通常,當我單擊“設備訪問”時,JavaScript將顯示“打開訪問設備”按鈕。 我的Firefox WebDriver似乎不支持JavaScript,該如何操作?
driver.get(baseUrl);
driver.findElement(By.id("username")).clear();
driver.findElement(By.id("username")).sendKeys("admin");
driver.findElement(By.id("password")).clear();
driver.findElement(By.id("password")).sendKeys("XXX");
driver.findElement(By.name("btnlogin")).click();
Thread.sleep(5000);
driver.findElement(By.xpath("//a[@href='/mybox/devices/overview.php']")).click();
Thread.sleep(5000);
driver.findElement(By.xpath("//a[@href='/mybox/devices/satellite.php']")).click();
Thread.sleep(5000);
WebElement element = driver.findElement(By.xpath("//input[@value='Open device access']"));
System.out.println("Element display (Avant accordéon): "+element.isDisplayed()+"");
driver.findElement(By.id("device_hmi_content_22")).click();
WebElement element2 = driver.findElement(By.xpath("//input[@value='Open device access']"));
System.out.println("Element display (open): "+element2.isDisplayed()+"");
if (isElementPresent(By.xpath("//input[@value='Close device access']")) ) {
driver.findElement(By.xpath("//input[@value='Close device access']")).click();
driver.findElement(By.xpath("//input[@value='Open device access']")).click();
Thread.sleep(5000);
assertTrue(isElementPresent(By.xpath("/html/body/div[2]/div[3]/div[3]/div[2]/div/div[2]/div[2]/div/div[6]/div/div/div/p/span")));
assertTrue(isElementPresent(By.xpath("/html/body/div[2]/div[3]/div[3]/div[2]/div/div[2]/div[2]/div/div[6]/div/div/div[2]/input")));
assertTrue(isElementPresent(By.xpath("/html/body/div[2]/div[3]/div[3]/div[2]/div/div[2]/div[2]/div/div[6]/div/div/div[2]/input[2]")));
Thread.sleep(3000);
driver.findElement(By.xpath("//input[@value='Close device access']")).click();
Thread.sleep(5000);
} else {
// driver.findElement(By.xpath("//input[@value='Open device access']")).click();
// Thread.sleep(5000);
// assertTrue(isElementPresent(By.xpath("/html/body/div[2]/div[3]/div[3]/div[2]/div/div[2]/div[2]/div/div[6]/div/div/div/p/span")));
// assertTrue(isElementPresent(By.xpath("/html/body/div[2]/div[3]/div[3]/div[2]/div/div[2]/div[2]/div/div[6]/div/div/div[2]/input")));
// assertTrue(isElementPresent(By.xpath("/html/body/div[2]/div[3]/div[3]/div[2]/div/div[2]/div[2]/div/div[6]/div/div/div[2]/input[2]")));
// Thread.sleep(3000);
// driver.findElement(By.xpath("//input[@value='Close device access']")).click();
// Thread.sleep(5000);
}
我不想使用javascript編程,但是我想在Firefox WebDriver上激活JavaScript。
該按鈕不可見:
<div id="device_hmi_content_22"> <
div id="accordion_device_hmi_22" class="accordion">
<h2 class="accHeadline accHeadlineClosed">Device Access</h2>
<div class="accContent accContentClosed ">
<div class="submit">
<input type="button" onclick="onOpenSessionClick()" value="Open device access">
</div>
</div>
</div>
“打開設備訪問”按鈕“不可見”,那么如何單擊它? 如何使其可見?
謝謝你的幫助。
Javascript可與Selenium WebDrivers一起使用,包括Firefox驅動程序。 問題不是javascript沒有運行。 如果要確認這一點,請在長時間睡眠后打開控制台並運行alert();
。 或者,為了消除所有疑問,請在測試中運行此命令:
driver.get(baseUrl);
driver.execute('alert();');
您應該看到標准的瀏覽器警報,指示javascript確實正常運行,並且問題出在其他地方。
我個人遇到過這樣的問題:單擊某個元素會被其上方的元素“竊取”,如果您使用固定位置的元素,則經常會發生這種情況。 如果您認為這可能是個問題,請考慮將elementScrollBehavior
設置為1。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.