internet explorer的selenium问题:org.openqa.selenium.nosuchelementexception:找不到带有xpath的元素

llycmphe  于 2021-06-30  发布在  Java
关注(0)|答案(2)|浏览(451)

我正在尝试在internet explorer(ie 11)中为我的系统运行selenium。它一直工作到登录。
登录后,它会打开一个新窗口,我使用下面的行打开所需的页面。

driver.get("http://appurl/function1.jsp");

在那之后,我找不到任何元素,即使是xpath也找不到,因为我在下面得到了这个错误。
org.openqa.selenium.nosuchelementexception:找不到xpath==//input[@value='continue'的元素

@BeforeClass(alwaysRun = true)
  public void setUp() throws Exception {
    DesiredCapabilities cap = DesiredCapabilities.internetExplorer();
    cap.setCapability(CapabilityType.UNEXPECTED_ALERT_BEHAVIOUR, UnexpectedAlertBehaviour.DISMISS);
    InternetExplorerOptions opt = new InternetExplorerOptions();
    opt.merge(cap);
    System.setProperty("webdriver.ie.driver", "D:\\JavaProjects\\Test\\libs\\IEDriverServer.exe");
    driver = new InternetExplorerDriver(opt);
    driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
  }

有人能帮我吗?事先非常感谢。

8wtpewkr

8wtpewkr1#

可能您需要使用等待函数,直到在dom页面上单击continueinput元素。代码如下;

continueInput = WebDriverWait(driver,40).until(EC.element_to_be_clickable((By.XPATH, '//input[@value='Continue']')))
fquxozlt

fquxozlt2#

当你试图在 get() 所以到 click() 在所需的元素上,需要为 elementToBeClickable() 您可以使用以下任一定位器策略:
CSS选择器:

new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("input[value='Continue']"))).click();

xpath:

new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//input[@value='Continue']"))).click();

参考

有关nosuchelementexception的详细讨论,请参见:
nosuchelementexception,selenium无法定位元素

相关问题