使用以下代码:
<head>
<body class="layout-two-column unibet uMyAccount">
<div class="tooltip-container">
<div id="tooltip" class="tooltip tooltip-error right-center" display: none;">
<div class="tooltip-content gutter-3 icon icon-small icon-info">**Message 1**</div>
<div class="tooltip-pointer"></div>
<div class="tooltip-pointer-decoration"></div>
</div>
</div>
<div id="window">
<div id="container" class="lobby-theme-3">
<header id="header">
<nav id="nav-main">
我需要使用java脚本获取Message 2
,其中类名称更改为tooltip-content gutter-3 icon icon-small icon-error
。我需要收到Message 2
的错误消息。
尝试以下方法:
//body[contains(@class,'layout-two-column unibet uMyAccount')]//div[contains(@id,'tooltip')]//div[contains(@class,'tooltip-content')
如果使用上面的xpath,并尝试String className = el.getAttribute("class");
它总是提取tooltip-content gutter-3 icon icon-small icon-info
类。
答案 0 :(得分:1)
尝试以下方法:
WebDriverWait wait = new WebDriverWait(driver, 10);
By tooltipSelector = By.xpath("//div[@id='tooltip']//div[contains(@class,'icon-error')]");
WebElement errorTooltip = wait.until(ExpectedConditions.presenceOfElementLocated(tooltipSelector));
String className = errorTooltip.getAttribute("class");
的问题:
icon-error
,而不是tooltip-content
。由于tooltip-content
将始终存在,因此WebDriver会在它发生变化之前找到它。除非您执行sleep
。body
tooltip
是div的ID,您不需要div[contains(@id,'tooltip')]
#tooltip .icon-error
。答案 1 :(得分:0)
WebDriverWait wait = new WebDriverWait(driver,10);
通过tooltipSelector = By.cssSelector(&#34; #tooltip .icon-error&#34;);
WebElement errorTooltip = driver.findElement(tooltipSelector);
wait.until(ExpectedConditions.presenceOfElementLocated(tooltipSelector));
String className = errorTooltip.getAttribute(&#34; class&#34;);
请告诉我上述脚本是否正常。