我正在尝试在Twitter上获得关注者的数量。我成功地吸引了如下关注者:
String followers = driver.findElement(By.xpath("//div[@class='ProfileCanopy-navBar']//li[@class='ProfileNav-item ProfileNav-item--followers']//span[@class='ProfileNav-value']")).getText();
问题是答案不是确切的数字“ 4.41M”。
HTML:
<a class="ProfileNav-stat ProfileNav-stat--link u-borderUserColor u-textCenter js-tooltip js-nav" data-nav="followers" tabindex="0" data-original-title="4,406,048 Followers">
<span class="ProfileNav-label">Followers</span>
<span class="ProfileNav-value" data-is-compact="true">4.41M</span>
</a>
我正在尝试获取数字“ 4,406,048”(在属性a的末尾)。我在网上看了大约一个小时,却找不到合适的解决方案。我正在将Selenium与Java和Chrome结合使用。
最佳答案
这是一个奇怪的。我写了应该删除该数字的代码,但它也一直返回null
。我终于弄清楚了当我拉出元素然后写出externalHTML时发生了什么。在页面加载期间更改了元素。
WebDriver driver = new FirefoxDriver();
driver.get("https://twitter.com/blakeshelton");
WebDriverWait wait = new WebDriverWait(driver, 5);
WebElement e = wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("a[data-nav='followers']")));
System.out.println(e.getAttribute("outerHTML"));
System.out.println(e.getAttribute("title"));
如果运行此代码,您将获得
<a class="ProfileNav-stat ProfileNav-stat--link u-borderUserColor u-textCenter js-tooltip js-openSignupDialog js-nonNavigable u-textUserColor" title="14,189,678 Followers" data-nav="followers" href="/blakeshelton/followers">
<span class="ProfileNav-label">Followers</span>
<span class="ProfileNav-value" data-is-compact="true">14.2M</span>
</a>
14,189,678 Followers
您将在externalHTML的
A
标记中注意到,title
包含跟随者的数量。这就是为什么我使用它而不是data-original-title
的原因。无论如何,此代码已经过测试,可以正常工作。关于java - 使用 Selenium 获取Twitter上的关注者数量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33570353/