有人可以帮我找到一个链接字段 测试网站:http://demosite.center/wordpress/wp-login.php 用户名:admin 密码:demo123
测试用例:点击左边的帖子有侧面板,然后点击添加新。
我无法找到帖子'登录后链接。脚本抛出此错误java.lang.reflect.InvocationTargetException
public class NewPost {
WebDriver driver;
public NewPost(WebDriver localdriver){
this.driver = localdriver;
}
WebElement box=driver.findElement(By.xpath("//*[@id='menu-posts']/a"));
List<WebElement> links = box.findElements(By.tagName("a"));
WebElement posts = links.get(1);
@FindBy(how=How.XPATH, using="//*[@id='wpbody-content']/div[4]/h2/a")
WebElement addNew;
@FindBy(how=How.XPATH, using="//*[@id='title']")
WebElement postTitle;
@FindBy(how=How.XPATH, using="//*[@id='content']")
WebElement content;
@FindBy(how=How.XPATH, using="//*[@id='publish']")
WebElement publishButton;
@FindBy(how=How.ID, using="message")
WebElement postPublishedMsg;
public void addNewPost(String titleText, String contentText){
posts.click();
addNew.click();
postTitle.sendKeys(titleText);
content.sendKeys(contentText);
publishButton.click();
if(postPublishedMsg.getText().contains("Post published")){
System.out.println("Post published successfully");
}
}
}
测试类:
@Test
public class VerifyNewPost {
public void checkNewPost(){
WebDriver driver = BrowserFactory.startBrowser("firefox", "http://demosite.center/wordpress/wp-login.php");
LoginPageNew login_page = PageFactory.initElements(driver, LoginPageNew.class);
login_page.loginWordpress("admin", "demo123");
NewPost post = PageFactory.initElements(driver, NewPost.class);
post.addNewPost("This is new post title", "This is new Post content");
}
}
答案 0 :(得分:0)
要点击添加新按钮,您必须先将鼠标悬停在帖子链接上。
您可以使用Actions类实现此目的。
请试试这个:
WebElement postlink = driver.findElement(By.xpath("//a[contains(text(),'Posts')]"));
Actions action = new Actions(driver);
action.moveToElement(postlink);
// Click on 'Add New' button
driver.findElement(By.xpath("//li[@id='menu-posts']//a[contains(text(),'Add New')]")).click();
我没有使用Page Factory。对不起。
答案 1 :(得分:0)
以下是您的问题的答案:
进入Dashboard页面后,点击Posts
链接,其中按照PageFactory的元素为:
@FindBy(how=How.XPATH,using="//li[@id='menu-posts']/a")
WebElement posts;
构建点击Posts
链接的方法:
public void click_Posts()
{
posts.click();
System.out.println("Clicked on Posts on Dashboard page");
}
现在从VerifyNewPost
班级调用click_Posts()
方法点击Posts
链接。
保持观察,登录您所在的Dashboard
页面后,您需要定义页面对象和相关方法。
点击Dashboard
链接时,在Posts
页面上,您将被重定向到Posts页面,您需要在该页面中定义页面对象和相关方法才能点击在Add New
链接。
如果这回答你的问题,请告诉我。