如何使用Selenium ChromeDriver从span类中获取文本

时间:2017-02-15 16:22:48

标签: java html selenium xpath selenium-chromedriver

我在stackoverflow上查看了simillar问题,并没有找到任何可以帮助我的东西。

我有以下HTML代码:

<span class="help-block ng-scope" translate="">Company</span>

我如何找到这个元素(Java)?我尝试了以下变体:

driver.findElement(By.cssSelector(".help-block.ng-scope"))

driver.findElement(By.xpath("//span[contains(@class, "Company")]"))

我甚至试图以两种方式从浏览器控制台复制xpath:

首先:

driver.findElement(By.xpath("//*[@id="ngCloudike"]/body/div[6]/div/div/div/div/form/div[1]/div[6]/span"))

第二

driver.findElement(By.xpath("/html/body/div[6]/div/div/div/div/form/div[1]/div[6]/span"))

我也试图找到By.ClassName,但我不能这样做,因为有一些空格。那么,我怎样才能找到这样的元素呢?

1 个答案:

答案 0 :(得分:0)

尝试以下表达式:

driver.findElement(By.xpath("//span[text()='Company']"))

如果您使用此代码获得NoSuchElementException,请尝试添加一些时间以等待元素存在且可见:

WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//span[text()='Company']"))

如果您NoSuchElementException获得ExplicitWait,则目标元素可能位于iframe内。处理iframe中的元素:

driver.switchTo().frame("iframeNameOrId");
driver.findElement(By.xpath("//span[text()='Company']"));