获取字符串索引超出范围-7错误

时间:2014-03-17 05:13:19

标签: javascript protractor

字符串索引超出范围错误-7,尝试单击按钮时。

请在下面找到我的代码。

driver.findElement(By.id("ContentPlaceHolderView_ctlRegistration_CustomerDetail_TextBox2")).clear();
driver.findElement(By.id("ContentPlaceHolderView_ctlRegistration_CustomerDetail_TextBox3")).clear();
driver.findElement(By.id("ContentPlaceHolderView_ctlRegistration_CustomerDetail_Button2")).click();
//driver.findElement(By.cssSelector("#ContentPlaceHolderView_ctlRegistration_CustomerDetail_Button2")).click();
//driver.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS);
assertTrue(driver.findElement(By.xpath("//*[@id='ContentPlaceHolderView_ctlRegistration_Panel1']/table/tbody/tr[16]/td/label")).getText().toString().trim().matches(this.getProperties("CSR_Success_Message"))==true);
break;

该页面适用于所有测试方法。 以上代码适用于其中一种测试方法。但是不适用于其他方法。

1 个答案:

答案 0 :(得分:0)

请为ContentPlaceHolderView_ctlRegistration_CustomerDetail_Button2

提供ONCLICK功能

我已确认以下一行

element = driver.findElement(By.xpath("//*[@id='ContentPlaceHolderView_ctlRegistration_Panel1']/table/tbody/tr[16]/td/label"));
System.out.println(element.getText().toString().trim());
System.out.println(element.getText().toString().trim().matches("CSR_Success_Message"));

适用于以下html

<div id="ContentPlaceHolderView_ctlRegistration_Panel1">
<table>
<tbody>
<tr>
<td>
<label text="ok1">ok2</label>
</td>
</tr>
... 16 trs
使用

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.htmlunit.HtmlUnitDriver;

输出

ok2
false

我不知道这个错误的原因是什么。它似乎必须在按钮的javascript中,而问题中没有提供