我在与Selenium合作时非常新。我想点击以下选择按钮:
这是我的代码:
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
public class FirstTest
{
private static WebDriver driver;
public static void main(String[] args) throws Exception
{
driver = new FirefoxDriver();
driver.manage().window().maximize();
driver.navigate().to("http://www.metro.ca/flyer/index.en.html");
WebElement postalCodeInputBox = driver.findElement(By.name("postalcode"));
postalCodeInputBox.sendKeys("L6R1A1");
postalCodeInputBox.submit();
String pageSource = driver.getPageSource();
if(pageSource.contains("setstore btn"))
System.out.println("setstore btn FOUND");
WebElement selectButton = driver.findElement(By.className("setstore btn"));
selectButton.click();
}
}
图片确认" setstore btn"在源头:
这是" setstore btn "在来源:
答案 0 :(得分:2)
很可能是由于您尝试在单个By.className()中搜索两个单独的类而导致的。 " setstore"和" btn"每个人都有自己的班级。
尝试替换
WebElement selectButton = driver.findElement(By.className("setstore btn"));
与
WebElement selectButton = driver.findElement(new ByAll(By.className("setstore"), By.className("btn")));
或者,https://stackoverflow.com/a/16090160/1055102提供了另一个不错的选择。
WebElement selectButton = driver.findElement(By.cssSelector(".setstore.btn"));