如何使用Selenium webdriver获取不在html标签内的元素的文本

时间:2016-07-07 14:16:18

标签: c# selenium selenium-webdriver

下面是html,我想获得文字“Conference USA”

<li class="list-unstyled" style="background-color: transparent;">
    <input id="account" type="checkbox" checked="checked" value="101" name="account" 
    style="background-color: rgb(255, 255, 255);"/> Conference USA                                 
</li>

3 个答案:

答案 0 :(得分:3)

根据您提出的问题并提供了评论,但实际上并不清楚您的想法。

因此,如果您希望li元素使用文字会议美国,请尝试以下操作: -

WebElement liElement = driver.FindElement(By.Xpath("//li[contains(.,'Conference USA')]"));

或者如果您希望input元素使用文字会议美国,请尝试以下操作: -

WebElement inputElement = driver.FindElement(By.Xpath("//li[contains(.,'Conference USA')]/input"));

或者如果您想要li元素的文字会议美国,请尝试如下: -

string text = driver.FindElement(By.Xpath("//li[./input[@type = 'checkbox' and @value='101']]")).Text;

希望它会帮助你...... :)

答案 1 :(得分:1)

您应该能够唯一地找到ligetText()应该有效。例如,在java中,它将如下所示:

String accountName = 
    driver.findElement(By.xpath(".//li[./input[@id='account']]")).getText();

编辑 c#

driver.FindElement(By.Xpath(".//li[./input[@id='account']]")).Text;

答案 2 :(得分:0)

尝试从如下所示的li webelement中获取“ innerHTML”属性,我之前遇到过同样的情况,并且对我有用:

driver.findElement(By.xpath("//li[contains(@class,'list-unstyled')]")).getAttribute("innerHTML");