[英]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.