使用Selenium Webdriver在Salesforce Lightning中创建自定义对象

问题描述 投票:0回答:1

我正在尝试通过在Salesforce Lightning中创建自定义对象的简单操作来练习使用Selenium。我的代码在Classic中可以正常工作,但是一旦我切换到Lightning,由于某种原因,它只能在一定程度上起作用。

有效的方法:

driver.get("http://login.salesforce.com");
driver.manage().window().maximize();    
driver.findElement(By.xpath("//input[@id='username']")).sendKeys("<USERNAME>");      
driver.findElement(By.xpath("//input[@id='password']")).sendKeys("<PASSWORD>");
driver.findElement(By.xpath("//input[@class='button r4 wide primary']")).click();

driver.findElement(By.xpath("//*[@id=\"oneHeader\"]/div[3]/div/div[2]/div/div/ul[2]/li[3]/div")).click();
driver.findElement(By.xpath("//*[@id=\"oneHeader\"]/div[3]/div/div[2]/div/div/ul[2]/li[3]/div/div[2]")).click();

因此,我能够登录并访问“对象创建”页面。问题在于下一部分代码,这应该是最简单的:

driver.findElement(By.xpath("//input[@id='MasterLabel']")).sendKeys("Address");      
driver.findElement(By.xpath("//input[@id='MasterLabel']")).sendKeys("Addresses");
driver.findElement(By.xpath("//input[@value=' Save ']")).click();```

我一直收到错误消息:

Exception in thread "main" org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"xpath","selector":"//input[@id='MasterLabel']"}

我尝试过的事情:

  1. 通过名称和ID而不是xpath搜索输入框。结果相同
  2. 尝试执行明确的等待。似乎没有什么改变
  3. 尝试使用driver.switchTo()。frame()方法,但Webdriver似乎无法在页面。

任何帮助将不胜感激!谢谢

selenium salesforce-lightning
1个回答
0
投票

您可以发布该元素的示例DOM吗?因此,识别xpath的正确性几乎没有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.