Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用Xpath返回多个结果_C#_Selenium_Xpath_Selenium Webdriver_Webdriver - Fatal编程技术网

C# 使用Xpath返回多个结果

C# 使用Xpath返回多个结果,c#,selenium,xpath,selenium-webdriver,webdriver,C#,Selenium,Xpath,Selenium Webdriver,Webdriver,我希望如果有人能提供帮助,我将尝试使用xpath表达式返回下面HTML代码段中指示的按钮值。是否可以在单个xpath中同时返回这两个值 <div class="selectedFacetsContainer"> <div class="selected-facets-slide"> <button class="facet-button btn-large selected ng-scope keyword-facet" ng-click="remo

我希望如果有人能提供帮助,我将尝试使用xpath表达式返回下面HTML代码段中指示的按钮值。是否可以在单个xpath中同时返回这两个值

<div class="selectedFacetsContainer">    
 <div class="selected-facets-slide">
   <button class="facet-button btn-large selected ng-scope keyword-facet" ng-click="removeFacet(sf)" ng-repeat="sf in selectedFacetsList">Thank</button>
   <button class="facet-button btn-large selected ng-scope keyword-facet" ng-click="removeFacet(sf)" ng-repeat="sf in selectedFacetsList">You</button>
 </div>
</div>

感谢
你

谢谢

是的,您可以使用单个xpath获取这两个元素。这是怎么做的-

driver.findElements(By.cssSelector('.facet-button btn-large selected ng-scope keyword-facet'));
您还可以使用
className
-

driver.findElements(By.className('facet-button btn-large selected ng-scope keyword-facet'));
但是为了从每一个数据中提取值,您需要为此编写一些额外的代码


希望对您有所帮助

这会给您带来您想要的东西

_driver.findElement(By.xpath("//div[@class='selected-facets-slide']"));

您可以使用以下代码使用一个Xpath获取这两个值

List<WebElement> abc = driver.findElements(By.xpath("//button[@class='facet-button btn-large selected ng-scope keyword-facet']"));
System.out.print(abc.size());
Iterator<WebElement> itr = abc.iterator();
while (itr.hasNext())
{
    WebElement a = itr.next();
    System.out.println(a.getText());
}
List abc=driver.findElements(By.xpath(//button[@class='facet-button btn large selected ng scope关键字facet']);
System.out.print(abc.size());
迭代器itr=abc.Iterator();
while(itr.hasNext())
{
WebElement a=itr.next();
System.out.println(a.getText());
}

实际上,您必须使用
findElements()
,它返回
WebElement
s的
列表。一旦我们得到
WebElement
s的列表,我们就可以使用
迭代器
WebElement

的注释中获取所有值,您似乎可以使用CSS选择器而不是XPath。如果是这样的话,这个代码应该可以工作。它获取
WebElement
列表
,然后您可以通过该列表循环获取所需的值

List<WebElement> buttons = driver.findElements(By.cssSelector("button.facet-button.btn-large.selected.ng-scope.keyword-facet"));
for (WebElement button : buttons)
{
    System.out.println(button.getText().trim());
}
List buttons=driver.findElements(By.cssSelector(“button.facet button.btn large.selected.ng scope.keyword facet”);
用于(WebElement按钮:按钮)
{
System.out.println(button.getText().trim());
}

非常感谢@Girish Sorturappreciated@AkifTahir你在找什么?您想从中提取值,还是只提取返回两个元素的xpath?还是解决了你的问题?