51Testing软件测试论坛

标题: 求助cssSelector定位的contains用法 [打印本页]

作者: wsryyffs    时间: 2014-3-14 12:55
标题: 求助cssSelector定位的contains用法
driver.findElement(By.cssSelector("span.ralign:contains('大连北')")).click();,定位失败,
                driver.findElement(By.cssSelector("span.ralign")).click();定位成功

谁知道怎么回事啊
  1. package test;

  2. import org.openqa.selenium.By;
  3. import org.openqa.selenium.JavascriptExecutor;
  4. import org.openqa.selenium.WebDriver;
  5. import org.openqa.selenium.firefox.FirefoxDriver;

  6. public class test12306 {

  7.         public static void main(String[] args) {
  8.                 // TODO Auto-generated method stub
  9.                 WebDriver driver=new FirefoxDriver();
  10.                 driver.get("http://www.12306.cn/");
  11.                 try {
  12.                         Thread.sleep(5000);
  13.                 } catch (InterruptedException e) {
  14.                         // TODO Auto-generated catch block
  15.                         e.printStackTrace();
  16.                 }
  17.         //driver.findElement(By.cssSelector("img[alt=\"购票\"]")).click();
  18.                 driver.findElement(By.cssSelector("img[alt='购票']")).click();
  19.         //driver.findElement(By.xpath("//img[@alt='购票']")).click();
  20.         try {
  21.                         Thread.sleep(5000);
  22.                 } catch (InterruptedException e) {
  23.                         // TODO Auto-generated catch block
  24.                         e.printStackTrace();
  25.                 }
  26.         
  27.                 String[] handles=new String[driver.getWindowHandles().size()];
  28.                 driver.getWindowHandles().toArray(handles);
  29.                
  30.                 for (int i = 0; i < handles.length; i++)
  31.                 {
  32.                 System.out.println("switch:"+i+":"+handles[i]);
  33.                 }
  34.                 driver.switchTo().window(handles[1]);
  35.                 //WebDriver childWindow = driver.switchTo().window(handles[1]);
  36.                
  37.         
  38.         //((JavascriptExecutor)driver).executeScript("document.getElementById(\"train_date\").readonly=false");
  39.         //((JavascriptExecutor)driver).executeScript("document.getElementById(\"train_date\").value='2014-3-28 周二'");

  40.                 driver.findElement(By.id("fromStationText")).click();
  41.                 driver.findElement(By.id("fromStationText")).sendKeys("大连北");
  42.                 //driver.findElement(By.xpath(".//*[@id='citem_0']/span")).click();
  43.                 //driver.findElement(By.cssSelector("span.ralign:contains('大连北')")).click();
  44.                 driver.findElement(By.cssSelector("span.ralign")).click();

  45.                 driver.findElement(By.id("toStationText")).click();
  46.                 driver.findElement(By.id("toStationText")).sendKeys("沈阳北");
  47.                 driver.findElement(By.xpath(".//*[@id='citem_0']/span")).click();

  48.                
  49.                 driver.findElement(By.id("query_ticket")).click();

  50.         try {
  51.                             Thread.sleep(5000);
  52.                     } catch (InterruptedException e) {
  53.                             // TODO Auto-generated catch block
  54.                             e.printStackTrace();
  55.                     }
  56.             
  57.         
  58.         driver.quit();

  59.         }

  60. }
复制代码

作者: 六月天    时间: 2014-3-14 17:14
我没听说过css里面带contains的,xpath才可以带contains
作者: joykao    时间: 2014-3-17 09:59
cssSelector的值取得不对吧




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2