簡體   English   中英

單擊Selenium with Java for Internet Explorer中的單選按鈕

[英]Clicking a radio button in Selenium with Java for Internet Explorer

我的代碼在FF和Chrome上完美運行,IE驅動程序啟動,但未單擊單選按鈕:

    WebElement radio = driver.findElement(By.xpath("//input[@value='5'][@name='rPay']/following-sibling::span"));
    System.out.println(radio.isDisplayed());
    radio.click();
    System.out.println(radio.isSelected());

我得到的輸出是true,false,表示該元素可見但未被單擊。 這是我在其上運行測試的html代碼:

<input type="radio" onclick="CheckPayment(document.frmWS,'');" value="5"    name="rPay" style="position: absolute; left: -9999px;">
<span class="custom-radio"></span>

實際上,我必須單擊span標簽,而不是input標簽。 在Firefox和Chorme中,它將無法正常工作。

在致電IEDriver之前,請包括以下功能。

DesiredCapabilities ieCapabilities = DesiredCapabilities.internetExplorer();

ieCapabilities.setCapability("nativeEvents", false);    
ieCapabilities.setCapability("unexpectedAlertBehaviour", "accept");
ieCapabilities.setCapability("ignoreProtectedModeSettings", true);
ieCapabilities.setCapability("disable-popup-blocking", true);
ieCapabilities.setCapability("enablePersistentHover", true);

driver = new InternetExplorerDriver(ieCapabilities);

isDisplayed()isSelected()是造成這種差異的原因。 讓我們在下面嘗試,它應該可以工作。

WebDriverWait wait = new WebDriverWait(driver, 10);
WebElement radio = wait.until(ExpectedConditions.elementToBeSelected(By.xpath("//input[@name='rPay']//span[@class='custom-radio']")));

使用以下代碼:-

WebElement element= driver.findElement(By.xpath("//input[@value='5'][@name='rPay']/following-sibling::span"));

JavascriptExecutor executor = (JavascriptExecutor) driver;
executor.executeScript("arguments[0].click();", element);

或嘗試這個

driver.findElement(By.xpath("//input[@value='5'][@name='rPay']/following-sibling::span")).sendKeys(Keys.ENTER);

希望對您有所幫助:)

如果仍然遇到任何問題,請與我聯系:)

搜索了整個下午之后,我發現了所缺少的東西。 我的IE Web驅動程序代碼是這樣的:

    DesiredCapabilities cap = new DesiredCapabilities();
    cap.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true);
    cap.setCapability(InternetExplorerDriver.ELEMENT_SCROLL_BEHAVIOR, true);
    cap.internetExplorer().setCapability("ignoreProtectedModeSettings", true);
    cap.setCapability("IE.binary", "C:/Program Files (x86)/Internet Explorer/iexplore.exe");
    cap.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
    cap.setJavascriptEnabled(true);
    cap.setCapability("requireWindowFocus", true);
    cap.setCapability("enablePersistentHover", false);
    System.setProperty("webdriver.ie.driver", System.getProperty("user.dir")+"\\webdriver\\iedriverserver.exe");
    WebDriver driver = new InternetExplorerDriver(cap);

添加一行之后,我在網上找到了某個地方,它工作正常:

cap.setCapability("nativeEvents", false);

非常感謝大家的幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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