如何使用testNG从selenium中的xml传递单选按钮值

时间:2016-02-20 10:03:42

标签: java xml selenium testng

我正在使用selenium与java和testNG,我想从xml文件传递值(参数化)..我已经传递了所有文本值,但需要帮助传递单选按钮值。

这是java代码:

@Test(priority = 2)
@Parameters({"provider_name","clientId","Dpid","nsdl"})
public void addDematAccount(String provider_name,String clientId,String Dpid, String nsdl )
{
    driver.findElement(By.xpath("//a[contains(@href, '#/app/DematAccount/Add')]")).click();

    driver.findElement(By.id("ProviderName")).sendKeys(provider_name);
    driver.findElement(By.id("ClientId")).sendKeys(clientId);
    driver.findElement(By.id("DPId")).sendKeys(Dpid);


    driver.findElement(By.cssSelector("[value='Nsdl'][type='radio']")).click();
    driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
    driver.findElement(By.name("btn")).click();
    driver.findElement(By.className("confirm")).click();
 }

这是XML文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Sample Test Suite" verbose="1" >
  <test name="Test Demat account" >
    <parameter name="provider_name" value="testng"/>
    <parameter name="clientId" value="88544"/>
    <parameter name="Dpid" value="82843041"/>
    <parameter name="nsdl" value="nsdl"/>
  <classes>
     <class name="testngDemo.NewTestngDemo">
       <methods>
         <exclude name="deleteDematAccount" />
         <exclude name="logout" />
       </methods>
    </class>
  </classes>
 </test>
</suite>

HTML:

 <input class="ng-pristine ng-invalid ng-invalid-required ng-touched" name="NsdlCdsl" value="Nsdl" tabindex="4" required="" data-ng-model="model.NsdlCdsl" type="radio">

  <label for="rg-NSDL">
     &nbsp;NSDL
   </label>

2 个答案:

答案 0 :(得分:0)

我希望你面临的问题是如何从passg单选按钮值获取正确的定位器?根据提供的代码,您传递字符串&#ns; nsdl&#39;但在css选择器中未正确使用。尝试附加它..

   driver.findElement(By.cssSelector("[value='"+nsdl+"'][type='radio']")).click();

请告诉我,如果这不是您所看到的,请提供更多信息。

谢谢你, 穆拉利

答案 1 :(得分:0)

我想我理解你的要求。由于测试通过了arg&#34; nsdl&#34;,你可以这样做:

driver.findElement(By.cssSelector("[value='" + nsdl + "'][type='radio']")).click();

请注意,虽然xml中的值是&#34; nsdl&#34; html中的值是&#34; Nsdl&#34; (第一个字母的不同情况)。您需要更新XML