繁体   English   中英

无法单击单选按钮Internet Explorer

[英]Unable to click on radio button Internet explorer

我无法使用IE浏览器中的Selenium Web驱动程序单击单选按钮。

html如下:

<TD class=PlainText>
<INPUT onclick="javascript: ShowHideInvoicePanel();setTimeout('__doPostBack(\'ctl00$cphClaimFlow$tabcontainerClaimFlow$tabFulfillment$Shipping$rdoYesFindMyPhone\',\'\')', 0)" id=ctl00_cphClaimFlow_tabcontainerClaimFlow_tabFulfillment_Shipping_rdoYesFindMyPhone type=radio value=rdoYesFindMyPhone name=ctl00$cphClaimFlow$tabcontainerClaimFlow$tabFulfillment$Shipping$phoneanswer>
<LABEL for=ctl00_cphClaimFlow_tabcontainerClaimFlow_tabFulfillment_Shipping_rdoYesFindMyPhone>Yes</LABEL>
<INPUT onclick="javascript: ShowHideInvoicePanel();setTimeout('__doPostBack(\'ctl00$cphClaimFlow$tabcontainerClaimFlow$tabFulfillment$Shipping$rdoNoFindMyPhone\',\'\')', 0)" id=ctl00_cphClaimFlow_tabcontainerClaimFlow_tabFulfillment_Shipping_rdoNoFindMyPhone type=radio value=rdoNoFindMyPhone name=ctl00$cphClaimFlow$tabcontainerClaimFlow$tabFulfillment$Shipping$phoneanswer>
<LABEL for=ctl00_cphClaimFlow_tabcontainerClaimFlow_tabFulfillment_Shipping_rdoNoFindMyPhone>No</LABEL>

下面是我的代码:

WebDriverWait waitForErasePhnYesRadio=new WebDriverWait(driver, timeOut);
    WebElement elementErasePhnYesRadio= waitForErasePhnYesRadio.until(ExpectedConditions.elementToBeClickable(By.id("ctl00_cphClaimFlow_tabcontainerClaimFlow_tabFulfillment_Shipping_rdoYesFindMyPhone")));
    elementErasePhnYesRadio.click();
    logger.info("Clicked on Yes button of erase phone script");

    if(elementErasePhnYesRadio.isSelected()==false){
        System.out.println("is radio btn selected 1 : "+elementErasePhnYesRadio.isSelected());
        elementErasePhnYesRadio.click();
        System.out.println("is radio btn selected 2 : "+elementErasePhnYesRadio.isSelected());
    }
    System.out.println("is radio btn selected 3 : "+elementErasePhnYesRadio.isSelected());

我在等待单选按钮显示时添加了等待声明。 代码正在执行,没有错误或异常显示。

下面的输出显示在控制台中:

INFO [main] (ShippingPage.java:45) - Clicked on Yes button of erase phone script
is radio btn selected 1 : false
is radio btn selected 2 : false
is radio btn selected 3 : false

我看不到引号中包含的ID .....也请检查一下。

JavascriptExecutor js = (JavascriptExecutor)driver;
Js.executeScript("document.getElementById('ctl00_cphClaimFlow_tabcontainerClaimFlow_tabFulfillment_Shipping_rdoYesFindMyPhone').checked = true;");

使用JS执行器尝试上面的代码,并看到硒文档说的此链接 ,脚本执行时鼠标不应悬停,因为在IE中它完全取决于本机事件。

最后有时可能会发生这种情况。

driver.findElement(By.id("ctl00_cphClaimFlow_tabcontainerClaimFlow_tabFulfillment_Shipping_rdoYesFindMyPhone")).click();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM