私はHTMLページを持っており、そのページのページオブジェクトを作成しました。このページには動的HTMLテーブルが含まれています。私はそれが動的に作成されるので、ページオブジェクトとして使用することができません。テストケースでは、ページの行と列を使用したいと思います。セレンのページfatoryを使用してページオブジェクトモデルの動的HTMLテーブルを処理する方法は?
ページオブジェクトクラス:!
public final class AgentsPage
{
@FindBy(how=How.XPATH, using="//table[@id='gwt-debug-com.seamless.ers.client.agentPortal.client.view.screens.SubAgentsReportScreen']//input[@id='gwt-debug-Phone_Number']")
public WebElement phoneNumber;
public String getTextOfPhoneNumber()
{
return phoneNumber.getAttribute("value");
}
public void setTextForPhoneNumber(String value)
{
phoneNumber.clear();
phoneNumber.sendKeys(value);
}
@FindBy(how=How.XPATH, using="//table[@id='gwt-debug-com.seamless.ers.client.agentPortal.client.view.screens.SubAgentsReportScreen']//input[@id='gwt-debug-Name']")
public WebElement name;
public String getTextOfName()
{
return name.getAttribute("value");
}
public void setTextForName(String value)
{
name.clear();
name.sendKeys(value);
}
@FindBy(how=How.XPATH, using="//table[@id='gwt-debug-com.seamless.ers.client.agentPortal.client.view.screens.SubAgentsReportScreen']//input[@id='gwt-debug-Reseller_ID']")
public WebElement resellerId;
public String getTextOfResellerId()
{
return resellerId.getAttribute("value");
}
public void setTextForResellerId(String value)
{
resellerId.clear();
resellerId.sendKeys(value);
}
@FindBy(how=How.XPATH, using="//table[@id='gwt-debug-com.seamless.ers.client.agentPortal.client.view.screens.SubAgentsReportScreen']//input[@id='gwt-debug-Terminal_Serial']")
public WebElement terminalSerial;
public String getTextOfTermialSerial()
{
return terminalSerial.getAttribute("value");
}
public void setTextForTerminalSerial(String value)
{
terminalSerial.clear();
terminalSerial.sendKeys(value);
}
@FindBy(how=How.XPATH, using="//table[@id='gwt-debug-com.seamless.ers.client.agentPortal.client.view.screens.SubAgentsReportScreen']//select[@id='gwt-debug-Rows_Per_Page']")
public WebElement rowsPerPage;
public String getSelectedValueOfRowsPerPage()
{
Select select=new Select(rowsPerPage);
return select.getFirstSelectedOption().getText();
}
public void setValueForRowsPerPage(String visibleText)
{
if(!(visibleText.equals("")||visibleText==null))
{
Select select=new Select(rowsPerPage);
select.selectByVisibleText(visibleText);
}
}
public void setValueForRowsPerPage(int index) throws Exception
{
Select select=new Select(resellerId);
select.selectByIndex(index);
}
@FindBy(how=How.XPATH, using="//table[@id='gwt-debug-com.seamless.ers.client.agentPortal.client.view.screens.SubAgentsReportScreen']//button[@id='gwt-debug-submit_button']")
public WebElement submit;
public String getTextOfSubmit()
{
return submit.getText();
}
@FindBy(how=How.XPATH, using="//table[@id='gwt-debug-com.seamless.ers.client.agentPortal.client.view.screens.SubAgentsReportScreen']//button[@id='gwt-debug-clear_button']")
public WebElement reset;
public String getTextOfReset()
{
return reset.getText();
}
@FindBy(how=How.XPATH, using="//table[@id='gwt-debug-com.seamless.ers.client.agentPortal.client.view.screens.SubAgentsReportScreen']//button[@id='gwt-debug-nextPage']")
public WebElement next;
public String getTextOfNext()
{
return next.getText();
}
@FindBy(how=How.XPATH, using="//table[@id='gwt-debug-com.seamless.ers.client.agentPortal.client.view.screens.SubAgentsReportScreen']//button[@id='gwt-debug-prevPage']")
public WebElement previous;
public String getTextOfPrevious()
{
return previous.getText();
}
@FindBy(how=How.XPATH, using="//table[@id='gwt-debug-com.seamless.ers.client.agentPortal.client.view.screens.SubAgentsReportScreen']//button[@id='gwt-debug-lastPage']")
public WebElement last;
public String getTextOfLast()
{
return last.getText();
}
@FindBy(how=How.XPATH, using="//table[@id='gwt-debug-com.seamless.ers.client.agentPortal.client.view.screens.SubAgentsReportScreen']//button[@id='gwt-debug-firstPage']")
public WebElement first;
public String getTextOfFirst()
{
return first.getText();
}
@FindBy(how=How.XPATH, using="//table[@id='gwt-debug- com.seamless.ers.client.agentPortal.client.view.screens.SubAgentsReportScreen']//div[contains(text(),'Page:') and contains(text(),'/')]")
public WebElement pageCount;
public String getTextOfPageCount()
{
return pageCount.getText();
}
//Need page objects for the dynamic html table
}
[ページの画像] [1]:http://i.stack.imgur.com/o94F0.png
私は私の中で、テーブルの行を反復処理するための任意のXPathまたは任意のループを使用したくありませんテストケース。私はAgentsPage.submitボタンのような他の静的なページオブジェクト要素のようにそれを使いたいだけです。これはどのように達成できますか?
たxPathなしまあ
ありがとうございます。心から感謝する。 –