您可以poll
您的具體情況的DOM。 polling
的含義是將驅動程序設置爲監視器狀態,等待某種條件得以滿足。 您可以有implicit
或explicit
waiting。
像這樣的事情會是一個很好的開端
public static void main(String[] args) throws Exception {
WebDriver driver = new FirefoxDriver();
driver.get("http://www.twitch.tv/NAME_OF_CHANNEL/chat?opentga=1");
WebDriverWait initialWait = new WebDriverWait(driver, 60);
WebElement commentsContainer = initialWait.until(ExpectedConditions.presenceOfElementLocated(By.cssSelector("ul.chat-lines")));
if(commentsContainer == null)
throw new Exception("Page unresponsive!!!");
int numberOfComments = commentsContainer.findElements(By.cssSelector("div[id^=ember]")).size() + 1;
while(true) {
String newCommentSelector = "chat-lines > div:nth-child(" + numberOfComments + ")";
WebElement newComment = (new WebDriverWait(driver, 60))
.until(ExpectedConditions.presenceOfElementLocated(By.cssSelector(newCommentSelector)));
if(newComment == null) continue;
numberOfComments++;
System.out.println(newComment.getText());
}
}
這可以被清理。可能有錯誤,但邏輯很直接。
你等到你有評論的容器。然後你會發現所有評論,並獲得他們的電話號碼。之後,您只需等到「看到」initial_number_of_comments + 1
評論。
選擇器可能不正確。隨意隨意改變他們。這是一個永無止境的輪詢循環,所以你可能想在這裏介紹一些退出邏輯。
謝謝,我認爲這將適用於我正在做的事! :d –