我正在使用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">
NSDL
</label>
答案 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