是否有可能使用Selenium在Wordpress Admin中自动删除用户?

是否有可能使用Selenium在Wordpress Admin中自动删除用户?,wordpress,selenium,testing,Wordpress,Selenium,Testing,我正在尝试进行一个自动测试,其中包括注册一个新用户并删除它,所以这个测试可以运行多次。在wp admin/users.php上有一个表,其中每个用户的格式为“tr”。如果我有用户的电子邮件,我可以获得用户id(特别是它的号码)吗 现在我正在尝试创建一个Web元素列表,将其转换为字符串(getAttribute(“outerHTML”),并将其大小减少为1个包含电子邮件的元素。但我不知道如何解构字符串,以便获得所需的id号 List trTags=driver.findElements(按.ta

我正在尝试进行一个自动测试,其中包括注册一个新用户并删除它,所以这个测试可以运行多次。在wp admin/users.php上有一个表,其中每个用户的格式为“tr”。如果我有用户的电子邮件,我可以获得用户id(特别是它的号码)吗

现在我正在尝试创建一个Web元素列表,将其转换为字符串(getAttribute(“outerHTML”),并将其大小减少为1个包含电子邮件的元素。但我不知道如何解构字符串,以便获得所需的id号

List trTags=driver.findElements(按.tagName(“tr”);
List users=trTags.stream().filter(item->item.isDisplayed()).map(item->item.getAttribute(“outerHTML”).collect(Collectors.toList());
users.removeIf(elem->!elem.contains(“test@test.com"));

users.stream().forEach(elem->System.out.println(elem));
您可以直接编写xpath,该xpath将与您的电子邮件id(您已经拥有)匹配,并可以获取id

xpath

//a[text()='test@test.com']/preceding-sibling::input  
如果要使其更具动态性,可以采用以下方式:

//a[text()='"+emailId+"']/preceding-sibling::input  
其中,emailId将是一个字符串,用于保存您想要的电子邮件id

现在,您可以编写如下简单Java代码:

String userId = driver.findElement(By.xpath("//a[text()='test@test.com']/preceding-sibling::input")]/preceding-sibling::input")).getAttribute("id");
System.out.println(userId);  
您只需更改xpath以供动态使用

希望这会有所帮助

更新:

由于
th
锚定标记的
前面的兄弟姐妹
,因此您得到了正确的结果

//a[text()='test@test.com']/preceding-sibling::th/input

当你说
用户id
时,这是否意味着复选框上显示的id?@cruisepandey,是的,我认为这将是获取Strange最方便的值,如果我使用“//a[text()=”我会得到一个错误“找不到元素”test@test.com“]/preference sibling::input”但是,如果我使用“//a[包含(,““+emailAddressString+”)]/Previous::th/input“并事先搜索所需的电子邮件,我会得到所需的“20”值。如果后面有空格,可以安全地使用:
//a[contains(text(),”test@test.com')]/Previous sibling::input
,如果此答案有帮助,请选中我答案旁边的复选框,因此此票据将被关闭。我感觉“contains”或“text()”在这里不是这种情况,因为它们都返回正确的值。使用“/Previous sibling::input”时,错误“无法定位元素”返回,使用“/previous::input”返回不正确的值,并且仅当我使用“/previous::th/input”返回正确的值时(20)是returnedOk,我可能错过了
th
,前面的兄弟姐妹是一种比当前节点年长的兄弟姐妹类型,这也是真的,您可以在shard HTML中验证。这是作为子标记输入的
前面的兄弟姐妹。我已经为将来的读者更新了答案。尽管它对您来说工作正常。