查找Xpath Selenium

查找Xpath Selenium,selenium,Selenium,我有以下内容: <div class="PickList visible" widgetid="Palette" id="Palette"> <span class="stuff"> <span class="stuff"><span class="lbl">A-B</span><span class="no">1111</span> </span> <span class="st

我有以下内容:

<div class="PickList visible" 
 widgetid="Palette" id="Palette">
 <span class="stuff">
 <span class="stuff"><span class="lbl">A-B</span><span class="no">1111</span> 
 </span>
 <span class="stuffSelect"><span class="lblSelect">C</span><span 
  class="plu">2222</span></span>
它仍然无法提取字母“C”


如有任何建议,我们将不胜感激。谢谢

您使用的xpath不正确。我为您提供了正确的xpath,或者您也可以使用类名直接获取它

根据讨论更新了xpath:

WebElement selectedCharacter = driver.findElement(By.xpath("//div[@id='Palette']//span[@class='lblSelect']"));
selectedCharacter.getText();
WebElement selectedCharacter = driver.findElement(By.className("lblSelect"));
selectedCharacter.getText();
使用类名:

WebElement selectedCharacter = driver.findElement(By.xpath("//div[@id='Palette']//span[@class='lblSelect']"));
selectedCharacter.getText();
WebElement selectedCharacter = driver.findElement(By.className("lblSelect"));
selectedCharacter.getText();

您可以在xpath下面尝试从div跟踪

driver.findElement("//*[@id='Palette']/span[2][@class='stuffSelect']/span[1][contains(text(), 'C')]");

请尝试下面的Xpath。它将打印您的“C”

driver.findElement(By.xpath("(//div[@id='Palette']//span[1]//span[2]/span)[1]")).getText()

下面是xpath。在XPath或CSS中考虑类<代码>可见/代码>。因为这表示该div有时可能不可见。因此,如果您将
作为类的一部分,请务必使用可见的

CSS

div.PickList.visible span.lblSelect
xpath

//div[@class='PickList visible']//span[@class='lblSelect']

谢谢你的回答。但问题是我不能使用lblSelect,因为它不是唯一的,将来可以有更多的lblSelect.ok,然后您可以在xpath中附加id和类名。我正在编辑我的答案,请尝试一下。您在下面提到,带有class=“lblSelect”的span将不是唯一的。你能更具体地说明你想要完成什么吗?您是否正在尝试特别查找包含“C”的范围?或者你是想在div@id=“调色板”中找到class=“stuffSelect”的跨度?我同意@BreaksSoftware。您的需求一点也不清楚,显然提供的四种解决方案都不起作用?双斜杠散布在xpath中,提供的一些答案也没有多大意义。