簡體   English   中英

在Webdriver Selenium上激活JavaScript

[英]Activate javascript on Webdriver selenium

我有使用Java編寫的程序,並且使用了Selenium WebDriver。 但是我的腳本沒有看到“打開設備訪問”按鈕,因為它是“顯示:無”。

http://clip2net.com/s/53N136

通常,當我單擊“設備訪問”時,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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM