Tag: webdriver

尝试将webtable导出为ex​​cel时出现无效的select器错误

错误是:给定的select器表[class ='stats_table data_grid'] tbody tr [0] td [0]无效或不导致WebElement。 发生以下错误:InvalidSelectorError:指定了无效或非法的select器 观察:我检查了没有[“+ r +”]和[“+ c +”]的cssSelector,它是有效的。 所以错误来自于加“[+ r +”]和[“+ c +”],我无法缓解。 我的总体目标是从mlb.com/stats的webtable中获取数据,并将其input到Excel表格中。 几乎99%的代码工作正常,除了无效的cssSelector问题。 我的代码是: package automate; import java.io.FileOutputStream; import java.io.IOException; import java.util.List; import org.apache.poi.xssf.usermodel.XSSFCell; import org.apache.poi.xssf.usermodel.XSSFRow; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; public class MLBtoXL { static WebDriver driver = new […]

如何从Web上的边桌数据打印列标题与WebDriver优秀

问题下面的代码允许我打印列标题或将网页表格数据打印到CSV文件,具体取决于我是select“th”还是“td”标签,但不是同时select。 我的问题如何在CSV输出中同时打印csv'th'和'td'文本? 代码我已经尝试了我的代码的2个版本,但结果是相同的。所附的两个版本。 代码版本1 public class WebToCSV { static WebDriver driver = new FirefoxDriver(); public static void main(String[] args) throws Throwable { //driver.navigate().to("http://goo.gl/El1PIV"); driver.navigate().to("http://www.bloomberg.com/markets/stocks/futures"); driver.manage().window().maximize(); driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS); WebElement table = driver.findElement(By.cssSelector ("div[class='data-tables first']")); List<WebElement> irow = table.findElements (By.cssSelector("div[class='data-tables first'] tr")); System.out.println("No. of rows in the table are: " + irow.size()); // Create excel workbook and […]

用Selenium WebDriver C#和带有值的Web窗体读取Excel文件

我有一个用C#编写的Selenium WebDriver脚本,它从Excel电子表格中读取一些值,然后使用行中的值填充Web表单。 我现在面临的挑战是,它从Excel文件中获取第一个单元格值,并将其input到表单中的所有字段,然后获取下一个值并执行相同操作,依此类推。 我怎样才能使它取得第一个值,添加到窗体中的第一个(命名的字段),第二个值和第二个命名的字段等等。 请参阅下面的方法的代码。 public void FillForm() //Function reads entries from an Excel spreadsheet then uses values to populate and fill the form { Excel.Application xlApp; Excel.Workbook xlWorkBook; Excel.Worksheet xlWorkSheet; Excel.Range xlrange; string xlString; int xlRowCnt = 0; int xlColCnt = 0; xlApp = new Excel.Application(); //Open Excel file xlWorkBook = xlApp.Workbooks.Open(@"D:\Projects\Data\MSI_Data_file.xlsx", 0, true, […]

为什么不Selenium WebDriver切换到我的新标签,这是一个Excel报告

我在其他情况下多次使用这种方法,它侧重于我刚刚打开的选项卡就好了。 现在我已经链接到一个活跃的Excel报告,当我点击它时被加载到一个新的标签中,我的代码不会改变焦点到新加载的标签。 我不知道为什么,因为控制选项卡仍然在浏览器中工作,所以不应该在我的代码仍然工作? 任何帮助,为什么我的代码不关注我新打开的Excel报告选项卡将是很大的帮助。 谢谢! public void mymethodnameishere (WebDriver driver) { System.out.println("Starting mymethodnameishere method"); Actions action = new Actions(driver); action.moveToElement(driver.findElement(mylocatorishere)); action.contextClick(driver.findElement(mylocatorishere)).sendKeys(Keys.ARROW_DOWN).sendKeys(Keys.ENTER).build().perform(); action.sendKeys(Keys.CONTROL).sendKeys(Keys.TAB).perform(); System.out.println("mymethodnameishere method completed successfully");

我们不能使用Excel作为Selenium的对象存储库..?

我很好奇,知道在使用selenium webdriver实现自动化框架时,为什么我们不能使用excel作为对象库,为什么每个人都使用PageObject或属性文件来存储所有的定位器。 我在想,如果我们使用excel来保存所有元素定位器,那么很容易将所有定位器保存在一个地方/一个excel中,如果需要,我们也可以轻松地更改定位器path。 虽然我正在寻求build议,然后再实施,如果使用excel有什么不利之处。

seleniumWebdriver:date字段正在填充string发送,但稍后更改为其他date一旦焦点改变

我需要在我的应用程序的date字段中inputdate。 我已经做了一个Java代码,每天都这样做。 所以我只是在电子表格列中inputdate和数据。 使用apache poi和selenium webdriver,我将获取它并在应用程序的date字段中input。 date字段有一个日历popup时,有一个焦点设置在那里。 我简单地绕过它,通过清除字段中的默认date,并从Excel表格中inputdate作为string。 上面的逻辑工作正常。 但现在我input的date是2015年6月12日(美国时区),inputdate也是一样的。 但是当焦点设置到下一个字段时,date变为2015年12月16日。 我不明白为什么会发生这种情况,当然,怎么可能避免呢? private static void setBloodGlucose(String vitalname, String date, String time, String vitaldata) throws Exception { Log.info("Entering vital data: " + vitalname); KeyActions.click(OR, "btnGearBloodGlucose"); KeyActions.clickById(OR, "btnBloodGlucose"); KeyActions.waitFor("4"); KeyActions.input(OR, "txtBloodGlucoseDate", date); KeyActions.input(OR, "txtBloodGlucoseTime", time); KeyActions.input(OR, "txtBloodGlucose", vitaldata); KeyActions.clickById(OR, "btnBloodGlucoseSave"); } public static void waitFor(String data) throws […]

打印简单值使用来自不同列的Excel,ArrayList和Java不起作用如果在具有值的数行之间不存在匹配

我想要做的只是打印多个值使用for循环和arraylist从多列与下面的代码 // =========The SpreadSheet========= File src = new File("J:\\Excel files\\mutiselect.xlsx"); // Load file FileInputStream fis = new FileInputStream(src); // Load WB XSSFWorkbook wb = new XSSFWorkbook(fis); // Load Sheet XSSFSheet sh1 = wb.getSheetAt(0); List<String> values = new ArrayList<String>(); //values from excel will be stored within this array Iterator<Row> rows = sh1.rowIterator(); while (rows.hasNext()) { Row […]

TestNG中的DataProvider使用Java WebDriver从Excel中传递数据

我有一个包含用户名和密码的login页面。 我有一个类XcelParserTestNGLogin来创build,更新和从Excel工作表加载方法。 还有另一个类是TestNG类的Login类。 我正在使用DataProvider从Excel传递数据。 但是我得到exception数据提供者正在尝试传递4个参数,但方法需要2 。 这是我的TestNG代码: public class Login { private static WebDriver driver; XcelParserTestNGLogin login1 = new XcelParserTestNGLogin(); Object[][] data1; /*public Login() throws IOException, InterruptedException { FileInputStream fis = new FileInputStream("Data//LoginPage.xls"); XcelParserTestNGLogin login1 = new XcelParserTestNGLogin(fis, "Login"); //this.data1 = login1.loadFromSpreadsheet(fis, "Login"); }*/ @BeforeClass public void test() throws Exception { System.setProperty("webdriver.chrome.driver", "C:\\Chrome\\chromedriver_win_26.0.1383.0\\chromedriver.exe"); driver = […]

如何处理在selenium webdriver中下载文件?

我是selenium新手,我已经分配了一个任务来执行下面提到的情况。 场景:对于给定的URL,我需要进入一个有多个链接的网页。 而链接可能有pdf或者HTML文件。 我需要通过单击链接下载文件,并通过在Excel表单中input链接引用进行pipe理。 所以我的任务有两个挑战: 1)如何处理XL表input值作为input。 2)如何使用selenium下载PDF文件 请帮我find任何网站,我可以在哪里下载一个文件 谢谢

用户loginvalidation在selenium?

我有一个Excel表中的username和password列表。 我正在尝试查找login页面的有效用户凭据。 这是我的代码: Workbook wBook = null; try { wBook = Workbook.getWorkbook(new File("C:/Users/jayant.gupta/Desktop/Book1.xls")); } catch (BiffException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } //get sheet jxl.Sheet s = wBook.getSheet(0); for(int i=0;i<s.getRows();i++) { for(int j=0;j<s.getColumns();j++) { Cell cell=s.getCell(j, i); System.out.println(" "+cell.getContents()); System.out.println("i "+i); […]