为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕田峪4524236 2021-06-18 14:02:09
我是 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 无法满足我的所有需求。
查看完整描述

3 回答

  • 3 回答
  • 0 关注
  • 215 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信