无法在Selenium中找到"Login"按钮



我的代码如下:

driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
//driver.findElement(By.xpath(".//button[starts-with(@type,’submit’)]")).click();
driver.findElement(By.xpath(".//*[/html/body/div[4]/div/form/div[3]/div[2]/button']")).click(); 

错误为:

SyntaxError:无法对"Document"执行"evaluate":字符串"//*[/html/body/div[4]/div/form/div[3]/div[2]/button']'不是有效的XPath表达式。请在此处输入图像描述

请告诉我,我该如何实现自动化?

首先,我建议您选择基于相对的Xpath,而不是基于绝对的。使用以下内容:

driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS); 
driver.findElementByXpath("//button[starts-with(@type,'submit')]")).click(); 

你一直保持着。在"//"之前,这是不需要的,如果这不起作用,请告诉我。

driver.findElement(By.xpath("/html/body/div[4]/div/form/div[3]/div[2]/button")).click();

[]表示条件。示例:

driver.findElement(By.xpath("/html/body/table/tbody/tr[contains(., 'bla')]"));

或。//用于查找元素的子元素。示例:

var RcdRow = driver.findElement(By.xpath("/html/body//tr"));
var RcdTd = RcdRow.findElement(By.XPath(".//td[3]"));

在"button"后面的代码中有一个额外的引号。此外。//*用于相对路径,因此您不必在此处使用它,因为您使用的是按钮元素的绝对路径。

最新更新