在https://store.liverpoolfc.com/主页右侧有反馈按钮,我设法点击并打开反馈模式,但无法获得评级按钮的ID,我试图在反馈中添加ID、类名、xpath、输入的csselector,但它不起作用。
下面是我的代码:
By acceptCookies = By.id("onetrust-accept-btn-handler");
By feedbackHomeBtn = By.id("nebula_div_btn");
By feedbackBackBtn = By.xpath("//*[@id='wrapper_c59e-d4ab-ebe9-648a-b368-0624-c2bf-8d63']/div/neb-rating/div/form/span/span[10]/label");
By feedBackInput = By.name("rating");
public void acceptCookies(){
try{
driver.findElement(acceptCookies).click();
}catch(Exception e){
System.out.println("Exceptions Caught" + e.getMessage());
}
}
public void feedbackFuncionality(){
try{
driver.findElement(feedbackHomeBtn).click();
driver.findElement(feedbackBackBtn).click();
driver.findElement(feedBackInput).click();
}catch(Exception e){
System.out.println("Exceptions Caught" + e.getMessage());
}
}
And code in test.java
@BeforeTest
public void beforeTest(){
WebDriverManager.chromedriver().setup();
driver = new ChromeDriver();
driver.manage().window().maximize();
driver.get(url);
}
@Test
public void sortItemsBySize() throws InterruptedException{
FeedBackPage feedBackPage = new FeedBackPage(driver);
feedBackPage.acceptCookies();
Thread.sleep(5000);
feedBackPage.feedbackFuncionality();
Thread.sleep(3000);
}
@AfterTest
public void afterTest(){
driver.quit();
}
我需要打开反馈模式,并点击评级1和10之间的btn。谁能给我一些提示如何获得此ID?谢谢
3条答案
按热度按时间blpfk2vs1#
你可以用css选择器得到评级按钮
其中x = 0、1、2...
bksxznpy2#
您正在尝试单击位于跨源iframe内部的元素
您需要切换框架,然后单击元素
您可以使用以下方式切换
owfi6suc3#
反馈评分表单位于iframe中。因此,在登录该页面并关闭cookie横幅并单击反馈按钮后,您需要切换到该iframe。在那里,您可以选择反馈评分,发送反馈并关闭对话框,如下面的代码所示。最后,您需要切换到默认内容。
下面的代码有效
我在这里使用的方法
clickVisible
是这样实现的:x一个一个一个一个x一个一个二个x