Selenium webdriver 如何在网站上创建自己的xpath-Selenium
我正在编写一个小应用程序,以转到twitter.com,选择登录按钮,然后输入用户名和密码 我已经能够检查登录按钮并从chrome复制XPath,但是根据给出的信息创建自己的XPath失败。复制时使用的XPath确实有效,但在我的代码中看起来并不整洁,因此我热衷于编写自己的XPathSelenium webdriver 如何在网站上创建自己的xpath-Selenium,selenium-webdriver,Selenium Webdriver,我正在编写一个小应用程序,以转到twitter.com,选择登录按钮,然后输入用户名和密码 我已经能够检查登录按钮并从chrome复制XPath,但是根据给出的信息创建自己的XPath失败。复制时使用的XPath确实有效,但在我的代码中看起来并不整洁,因此我热衷于编写自己的XPath WebDriver driver = new ChromeDriver(); driver.get("http://www.twitter.com"); driver.findElement(B
WebDriver driver = new ChromeDriver();
driver.get("http://www.twitter.com");
driver.findElement(By.xpath("//*[@id=\"react-root\"]/div/div/div/main/div/div/div[1]/div[1]/div/div[3]/a[2]/div")).click();
下面是我检查登录按钮时给出的内容
<div dir="auto" class="css-901oao r-1awozwy r-13gxpu9 r-6koalj r-18u37iz r-16y2uox r-1qd0xha r-a023e6 r-b88u0q r-1777fci r-ad9z0x r-dnmrzs r-bcqeeo r-q4m81j r-qvutc0">
<span class="css-901oao css-16my406 css-bfa6kz r-poiln3 r-bcqeeo r-qvutc0">
<span class="css-901oao css-16my406 r-poiln3 r-bcqeeo r-qvutc0">Log in</span>
</span>
</div>
登录
我不确定您在寻找什么答案,因此这里有几种可能性:
A:试试
//A[@data testid='loginButton']
A:那是经验使然。首先,打开devtools并用鼠标悬停以查看页面上突出显示的元素。仔细阅读属性
在网上搜索一些教程。就我个人而言,我从一个开始,然后从那里建立起来
您可以根据登录按钮的父级唯一属性来识别该按钮 然后使用xpath axe/substant选择当前节点的所有子节点(子节点、孙子节点等),可以向下导航到包含文本日志的范围
driver.findElement(By.xpath("//a[@data-testid='loginButton']/descendant::span[text()='Log in']")).click();
或
如果您想研究xpath/css选择器,请看这里://span[.='Log in']/parent::div将是一个简单的xpath。为您正在使用的编程语言添加一个标记。。。看起来像Java。
driver.findElement(By.xpath("//a[@href='/login']/descendant::span[text()='Log in']")).click();