Wie kann ich überprüfen, ob der Text eines neuen anhängigen Elements gleich der Zeichenfolge ist? Ich möchte ein Wort in einem Chat finden, aber es sieht so aus, als würde ich auf dasselbe Element zeigen.Wie findet man eine dynamisch hinzugefügte Zeichenfolge?
while (true){
try {
WebDriverWait wait = new WebDriverWait(driver, 5);
wait.until(ExpectedConditions.textToBePresentInElementLocated(By.xpath("//span[@class='msg-body']"), "Hello"));
System.out.println("Found Hello");
} catch (Exception e) {
System.out.println("Nothing found");
}
Thread.sleep(100);
}
Der Teil des Chat-HTML
<li class="msg-chat-message">
<span class="user role-user">
<img class="user-logo" src="https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/d6/d6e4e034324f1e2abe161a8239f243a2f48e08e9.jpg">
<div class="user-level-container">
<div class="user-level level-item level-70">75</div>
</div>
<span class="drop-down-container _3_options">
<ul class="user-dropdown-invisible">
<li class="user-dropdown-entry">Stats</li>
<li class="user-dropdown-entry">Tip</li>
<li class="user-dropdown-entry">Ignore</li>
<!-- react-text: 928 -->
<!-- /react-text -->
</ul>
</span>
<span class="user-name">
<span>
<!-- react-text: 931 -->RePo
<!-- /react-text -->
<span class="icon-balanceicon namepromotion" title="This user has activated the Name Promotion"></span>
<!-- react-text: 933 -->
<!-- /react-text -->
</span>
<!-- react-text: 934 -->:
<!-- /react-text -->
</span>
</span>
<span class="msg-body">all of you</span>
</li>
<li class="msg-chat-message">
<span class="user role-user">
<img class="user-logo" src="https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/1a/1a5e80deb58be484e49ea9a9434faa7a6528654b.jpg">
<div class="user-level-container">
<div class="user-level level-item level-50">50</div>
</div>
<span class="drop-down-container _3_options">
<ul class="user-dropdown-invisible">
<li class="user-dropdown-entry">Stats</li>
<li class="user-dropdown-entry">Tip</li>
<li class="user-dropdown-entry">Ignore</li>
<!-- react-text: 946 -->
<!-- /react-text -->
</ul>
</span>
<span class="user-name">
<span>
<!-- react-text: 949 -->Anonymous
<!-- /react-text -->
<span class="icon-balanceicon namepromotion" title="This user has activated the Name Promotion"></span>
<!-- react-text: 951 --> 3
<!-- /react-text -->
</span>
<!-- react-text: 952 -->:
<!-- /react-text -->
</span>
</span>
<span class="msg-body">kk</span>
</li>
<li class="msg-chat-message">
<span class="user role-user">
<img class="user-logo" src="https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/44/44c705474e17ebe8a2a9ef70467c20ee5add283e.jpg">
<div class="user-level-container">
<div class="user-level level-item level-50">52</div>
</div>
<span class="drop-down-container _3_options">
<ul class="user-dropdown-invisible">
<li class="user-dropdown-entry">Stats</li>
<li class="user-dropdown-entry">Tip</li>
<li class="user-dropdown-entry">Ignore</li>
<!-- react-text: 964 -->
<!-- /react-text -->
</ul>
</span>
<span class="user-name">
<span>
<!-- react-text: 967 -->Rrubinski. for EM
<!-- /react-text -->
<span class="icon-balanceicon namepromotion" title="This user has activated the Name Promotion"></span>
<!-- react-text: 969 -->
<!-- /react-text -->
</span>
<!-- react-text: 970 -->:
<!-- /react-text -->
</span>
</span>
<span class="msg-body">which one u want?</span>
</li>
Bisher habe ich die Liste der Elemente, es ist Größe 400 Artikel gleich ist (wenn Chat mit Nachrichten gefüllt ist); Aber ich möchte immer noch wissen, ob es möglich ist, neue Elemente zu verfolgen, anstatt 400 Mal zu wiederholen.
elementList = driver.findElements(By.xpath("//span[@class='msg-body']"));
for (WebElement element: elementList) {
if (element.getText().equals("nice")) {
System.out.println("Done");
System.out.println("List size: " + elementList.size());
}
}
Thread.sleep(200);
Kennen Sie uns das HTML-Dom des Chat-Fensters? –
@santhoshkumar ja, sicher. –