String exePath = "C:\\chromedriver.exe";
System.setProperty("webdriver.chrome.driver", exePath);
WebDriver driver = new ChromeDriver();
// WebDriver driver=new FirefoxDriver();
driver.manage().window().maximize();
driver.get("https://wallethub.com/profile/test_insurance_company/");
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.findElement(By.xpath(".//*[@id='footer_cta']/span/span")).click();
// To move to 4th star over the review
Actions action = new Actions(driver);
action.moveToElement(driver.findElement(By.xpath(".//*[@id='wh-body-inner']/div[2]/div[3]/div[1]/div"))).perform();
// action.moveToElement(driver.findElement(By.xpath(".//*[@id='wh-body-inner']/div[2]/div[3]/div[1]/div/a[4]")));
action.moveToElement(driver.findElement(By.xpath(".//*[@id='wh-body-inner']/div[2]/div[3]/div[1]/div/a[5]"))).perform();
action.click();[![enter image description here][1]][1]
尝试了代码,但它没有徘徊,也没有点击转到下一页
答案 0 :(得分:0)
要执行此操作,您需要将鼠标悬停在评级部分上,然后公开实际包含评级星等的HTML隐藏部分。要查找初始元素有时很难,因为当您将鼠标悬停在右键单击时检查,元素发生变化。我通常做的是在Inspect附近找到一些东西,然后将各种元素悬停,直到页面上突出显示正确的元素。如果它包含文本,另一种查找方法是在HTML中搜索包含的文本。一旦找到正确的元素,您只需将其悬停,然后单击正确的星号。
由于我假设您将重复使用此代码,因此我将这样的内容写入函数中,以便于重用。
public void setRating(String stars)
{
// hover over ratings panel to expose ratings stars
new Actions(driver).moveToElement(driver.findElement(By.cssSelector("div.wh-rating-notes"))).perform();
// click specified star
driver.findElement(By.xpath("//div[@class='wh-rating-choices-holder']/a[.='" + stars + "']")).click();
}
然后你会称之为
setRating("5");
我已经测试了这段代码并且有效。