java - 如何在 Tripadvisor 中处理气泡评分小部件内的评分?

标签 java selenium tripadvisor

我有一个场景,我需要单击tripadvisor内的气泡评级小部件的第五个气泡。

HTML 代码是:

<span id="bubble_rating" class="ui_bubble_rating fl bubble_10" data-value="1" onclick="ta.userreview.common.trackFieldFocus(this); ">
<img src="https://static.tacdn.com/img2/x.gif" alt="Roll over, then click to rate">
</span>

我正在尝试使用以下代码片段:

Actions action = new Actions(driver);
WebElement element = driver.findElement(By.xpath("//span[@id='bubble_rating']"));
action.moveToElement(element).perform();

此代码仅悬停前 3 个气泡,其余 4 个、第 5 个气泡不会被单击。

最佳答案

点击 https://www.tripadvisor.in/ 中的气泡评级小部件中的所有5星级评级使用Selenium您必须为 visibilityOfElementLocated() 引发WebDriverWait,并且您可以使用以下任一 Locator Strategies :

  • css选择器:

    driver.get("https://www.tripadvisor.in/UserReviewEdit-g641714-d1156207-Club_Mahindra_Madikeri_Coorg-Madikeri_Kodagu_Coorg_Karnataka.html]");
    new Actions(driver).moveToElement(new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("span#bubble_rating"))), 50, 0).click().build().perform();
    
  • xpath:

    driver.get("https://www.tripadvisor.in/UserReviewEdit-g641714-d1156207-Club_Mahindra_Madikeri_Coorg-Madikeri_Kodagu_Coorg_Karnataka.html]");
    new Actions(driver).moveToElement(new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//span[@id='bubble_rating']"))), 50, 0).click().build().perform();
    
  • 浏览器快照:

bubble_rating_widget

关于java - 如何在 Tripadvisor 中处理气泡评分小部件内的评分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60112493/

相关文章:

python - 为什么尽管使用了 driver.close() 和 driver.quit(),Chrome.exe 和 chromedriver.exe 仍然出现在计算机的内存中?

Python 从 tripadvisor 抓取 'things to do'

python - 查看到到网的抓取表单

tripadvisor - 如何从 Trip Advisor api 获取所有评论

java - 忽略 XML Unmarshal Java Spring 上的 ESC 特殊字符

java - 如何按对象内部的对象字段进行排序?

java - TimescaleDB 的插入速度比普通 postgresql 10 慢

java - 使用 selenium WebDriver 查找元素

selenium - 我可以在计算机 A 上运行 Selenium,并看到计算机 B 中的浏览器吗?

Java Struts2 Action map 问题