单击在 Chrome 中工作但在 IE11 中不工作的 xpath 找到的按钮
Clicking a button found with xpath working in Chrome but not in IE11
我想点击一个按钮(发送表格)
<button class="form-button primary">Click here</button>
我找到这样的元素:
driver.findElement(By.xpath("//button[contains(text(),'Click here')]")).click;
在 chorme 上正在工作并发送表单,但在 IE11 中没有(发送表单)。
明确地说,在 IE 中是查找元素(或一个元素)。但可能不是正确的元素。
添加信息:
这是唯一带有此文字的按钮
我可能会找到其他方法来获取此元素,但如果我重新设计此路径,我将需要更改所有与此类似的路径。
硒 version:3.14
IE 网络驱动程序:3.14
有几种不同的方法可以使用 selenium 单击某些内容。我会尝试使用 javascript 点击或操作点击。
Javascript点击:
WebElement element = driver.findElement(By.xpath("//button[contains(text(),'Click here')]"));
JavascriptExecutor executor = (JavascriptExecutor)driver;
executor.executeScript("arguments[0].click();", element);
点击操作:
Actions action = new Actions(driver);
WebElement element = driver.findElement(By.xpath("//button[contains(text(),'Click here')]"));
action.moveToElement(element).click().build().perform();
也有可能是您在执行点击时出现在了错误的框架中。
driver.switchTo.frame("Frame_ID");
您可以在检查网页时找到框架 ID。
如果您的用例是调用 click()
,您必须为 elementToBeClickable()
引入 WebDriverWait,并且您可以使用以下任一方法 :
xpath
使用 className 和 text:
new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//button[@class='form-button primary' and text()='Click here']"))).click();
xpath
使用 text:
new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//button[text()='Click here']"))).click();
xpath
使用 contains()
:
new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//button[contains(., 'Click here')]"))).click();
我想点击一个按钮(发送表格)
<button class="form-button primary">Click here</button>
我找到这样的元素:
driver.findElement(By.xpath("//button[contains(text(),'Click here')]")).click;
在 chorme 上正在工作并发送表单,但在 IE11 中没有(发送表单)。 明确地说,在 IE 中是查找元素(或一个元素)。但可能不是正确的元素。
添加信息:
这是唯一带有此文字的按钮
我可能会找到其他方法来获取此元素,但如果我重新设计此路径,我将需要更改所有与此类似的路径。
硒 version:3.14 IE 网络驱动程序:3.14
有几种不同的方法可以使用 selenium 单击某些内容。我会尝试使用 javascript 点击或操作点击。
Javascript点击:
WebElement element = driver.findElement(By.xpath("//button[contains(text(),'Click here')]"));
JavascriptExecutor executor = (JavascriptExecutor)driver;
executor.executeScript("arguments[0].click();", element);
点击操作:
Actions action = new Actions(driver);
WebElement element = driver.findElement(By.xpath("//button[contains(text(),'Click here')]"));
action.moveToElement(element).click().build().perform();
也有可能是您在执行点击时出现在了错误的框架中。
driver.switchTo.frame("Frame_ID");
您可以在检查网页时找到框架 ID。
如果您的用例是调用 click()
,您必须为 elementToBeClickable()
引入 WebDriverWait,并且您可以使用以下任一方法
xpath
使用 className 和 text:new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//button[@class='form-button primary' and text()='Click here']"))).click();
xpath
使用 text:new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//button[text()='Click here']"))).click();
xpath
使用contains()
:new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//button[contains(., 'Click here')]"))).click();