猿问

为什么同一个按钮需要不同的元素定位器才能工作?

我是 Web 自动化的新手,我想从一个简单的问题开始。


我正在 Chrome 中使用 Selenium Webdriver。我测试的每个页面上都有一个按钮:


<button class="next_btn btn green">Btn</button>

我第一次必须编写以下语法才能使其正常工作:


driver.findElement(By.xpath("//button[contains(.,'Btn')]")).click();

其他 xpath 不起作用。下次我不得不使用这个:


driver.findElement(By.xpath("//*[@id=\'formtop\']/div/form/div/fieldset[2]/div[2]/button[2]")).click();

下一页上的相同按钮将不接受任何内容。


我试过了:


WebElement stupidBtn = driver.findElement(By.xpath("//*[@id=\'formtop\']/div/form/div/fieldset[3]/div[2]/button[2]"));

stupidBtn.click();



driver.findElement(By.xpath("//*[@id=\'formtop\']/div/form/div/fieldset[3]/div[2]/button[2]")).click();



WebElement stupidBtn = driver.findElement(By.xpath("//*[@id=\'formtop\']/div/form/div/fieldset[3]/div[2]/button[2]"));

JavascriptExecutor executor = (JavascriptExecutor) driver;

executor.executeScript("arguments[0].click();", stupidBtn);



WebElement stupidBtn = driver.findElement(By.id("//*[@id=\'formtop\']/div/form/div/fieldset[3]/div[2]/button[2]"));

Actions buildAct = new Actions(driver);

buildAct.moveToElement(stupidBtn).click(stupidBtn);

buildAct.perform();



driver.findElement(By.cssSelector("#formtop>div>form>div>fieldset:nth-child(3)>div.multiform_buttons>button.next_btn.btn.green")).click();

一般来说,我想知道我不明白什么以及为什么我不能总是使用与 Katalon Automation Recorder 中相同的语法。不幸的是,KAR 无法满足我的所有需求。


慕田峪4524236
浏览 216回答 3
3回答
随时随地看视频慕课网APP

相关分类

Java
我要回答