我试图在selenium中编写一些代码,让我通过使用属性" gamename"来选择一个元素。
当我检查代码时,我得到了这个:
h4 class= "cardTitle_1ifib5" role="gamename">Test Web </h4>
我可以通过xpath选择:
"//*[@id="root"]/div/main/article/div[1]/div[1]/a/section/div[1]/h4"
但我希望每次都可以搜索游戏名称的值,以便我可以使用数据提供者进行搜索。
要明确我想要改变&#34;测试网络&#34;每次我运行函数时都会发生变化。选择器如下:
我不知道这是否有帮助
答案 0 :(得分:0)
Selenium有一个选项,您可以通过该选项检索元素的属性。
[yourXpath].getAttribute("name");
答案 1 :(得分:0)
根据您共享的HTML以及通过value
属性识别元素的代码试验,您可以使用以下定位器策略:
的xpath :
"//h4[starts-with(@class,'cardTitle_1ifib') and @role='gamename'][normalize-space()='Test Web']"
答案 2 :(得分:0)
你想找到确切的文字,似乎XPath就是它:
webDriver.findElement(By.xpath("//h4[contains(text(), '" + yourTestLucas + "')]"));
通过这样做,您可以随时通过数据提供者将值传递给它。
在我阅读您的评论时,您可以将其作为一种方法:
案例1 :如果您只是想找到这个元素:
public WebElement findElementWithRoleName(String yourTestLucas) {
return webDriver.findElement(By.xpath("//h4[contains(text(), '" + yourTestLucas + "')]"));
}
案例2 :如果您想点击此元素:
public void clickElementWithRoleName(String yourTestLucas) {
webDriver.findElement(By.xpath("//h4[contains(text(), '"+ yourTestLucas + "')]")).click();
}
答案 3 :(得分:0)
如果我正确理解了问题,这里有几个如何实现属性元素处理的例子:
<强> 1。通过css选择器:
webDriver.findElements(By.cssSelector("h4[role ='gamename']");
<强> 2。通过xPath:
webDriver.findElements(By.xpath("//h4[@role='gamename']"))
或
webDriver.findElements(By.xpath("//*[@role='gamename']"))
第3。通过WebElement方法:
WebElement element = driver.findElement(...);
element.getAttribute("role")
这个例子中的一些应该有用。
希望这有帮助。