在以下示例中,我只需单击Jet Airways。看来所选的xpath是正确的,因为它仅从选择中给出了权利。 http://i.imgur.com/8TiOgha.png
然而,当Selenium WebDriver提取相同内容时,它表示元素不可见。但它仍然给出一个长度为零的文本字符串Button。在观察窗口中给出。
http://i.imgur.com/jrR0221.png
如果有人能帮助我指出我是否因为我是VBA新手而有任何错误,我将不胜感激
答案 0 :(得分:1)
不确定您的XPath是否正确并找到正确的静态元素...
你可以用它来定位'Jet Airways'
//label[text()[contains(.,'Jet Airways')]]
此外,使用.click()
,尝试点击“航空公司”下拉列表,然后找到“航空公司下拉列车”XPath
//span[@title='Airlines']
public class SkyScanner
{
static String chkBxXpth = "//label[@class='dropdown-item cfx']/input[@checked]";
public static void main(String[] args) throws InterruptedException
{
WebDriver driver = new FirefoxDriver();
Actions actions = new Actions(driver);
WebDriverWait wait = new WebDriverWait(driver, 30);
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS);
driver.get("http://skyscanner.cntraveller.com/en-GB/flights#/result?originplace=AUH&destinationplace=LHR");
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//span[@title='Airlines']")));
driver.findElement(By.xpath("//span[@title='Airlines']")).click();
List<WebElement> chkBx = driver.findElements(By.xpath(chkBxXpth));
for(WebElement i : chkBx)
{
actions.moveToElement(i).click().perform();
}
driver.findElement(By.xpath("//label[text()[contains(.,'Jet Airways')]]")).click();
}
}