我試圖去通過一個表格(ID =「campaignAllAvailableList」),並遍歷標題的列表: (xpath = .//*[@id='campaignAllAvailableList']/li/div/div/h3
),看它是否與一個我想匹配。的Java,相對XPath查找的網頁元素
如果確實如此,那麼我點擊到相應的按鈕:
(的xpath = .//*[@id='campaignAllAvailableList']/li/div/div[3]/a
)
<div id="campaignListWrapper" class="campaignOverviewSectionBody campaignListing" style="">
<ul id="campaignAllAvailableList" class="campaignList" style="display: block;">
<li>
<div class="timetableCard clearedGroup">
<div class="timetableCardHeader helpAnchor">
<h3 class="timetableCardTitle">November Campaign metaTitle</h3>
<img class="helpIcon" src="/images/icons/info-icon.png"/>
<div class="popUp helpPopUp">
</div>
<div class="timetableCardBody">
<div class="timetableCardActionBar clearedGroup">
</div>
</li>
<li>
<div class="timetableCard clearedGroup">
<div class="timetableCardHeader helpAnchor">
<h3 class="timetableCardTitle">qwe</h3>
<img class="helpIcon" src="/images/icons/info-icon.png"/>
<div class="popUp helpPopUp">
</div>
<div class="timetableCardBody">
<div class="timetableCardActionBar clearedGroup">
</div>
</li>
這是java代碼我現在:
public class PromotionsPage extends MainPageTemplate
{
@FindBy(xpath=".//*[@id='campaignAllAvailableList']/li/div")
List<WebElement> campaignTable;
public PromotionsPage(WebDriver d) throws PageValidationException
{
super(d);
}
public void clickSpecificGetStartedButton(String metadataTitle)
{
for (WebElement el : campaignTable)
{
WebElement metadataTitleTextElement = el.findElement(By.xpath(".//div/h3"));
if (metadataTitle == metadataTitleTextElement.getText())
{
WebElement getStartedButton = el.findElement(By.xpath(".//div[3]/a"));
getStartedButton.click();
}
}
}
}
它失敗在「爲(WebElement EL:campaignTable)」,我認爲這是不讀campaignTable作爲List正確...
我試圖找到標題列表直接
@FindBy(xpath=".//*[@id='campaignAllAvailableList']/li/div/div/h3")
List<WebElement> campaignTable;
做
for (WebElement el : campaignTable)
{
System.out.println(el.getText());
}
但這給了一個錯誤太多, java.lang.IllegalArgumentException異常:對象不是聲明類
是什麼的問題是什麼呢?有什麼錯誤? –
我只是在帖子中包含了錯誤 - 它在「for(WebElement el:campaignTable)」中失敗,我認爲它沒有正確讀取campaignTable作爲列表 – wahahabear
請在問題中發佈相關的HTML而不是使用圖片。該圖像最終將無法訪問,然後這個問題將不太有用。 – JeffC