我无法点击Sitecore中的发布按钮。它显示无法定位元素。
我使用了driver.findElement(By.xpath("//*[@id='NextButton']")).click();
driver.findElement(By.xpath("/html/body/form/div[2]/div[2]/button[2]")).click();
以下的表达式,但它们没有用:
{{1}}
答案 0 :(得分:2)
您似乎需要切换到iframe
,等到Publish item
模态窗口打开,直到Publish
按钮可点击...尝试下面的代码,让我知道结果:
WebDriverWait wait = new WebDriverWait(driver, 10);
切换到iframe
wait.until(ExpectedConditions.frameToBeAvailableAndSwitchToIt("scContentIframeId0"));
或
wait.until(ExpectedConditions.visibilityOfElementLocated(By .id("scContentIframeId0")));
driver.switchTo().frame("scContentIframeId0");
点击“发布”
wait.until(ExpectedConditions.elementToBeClickable(By.id("NextButton"))).click();
答案 1 :(得分:0)
使用如下的JavaScript Executor,
WebElement element = driver.findElement(By.id("abcd"));
JavascriptExecutor jsExecutor = (JavascriptExecutor)driver;
jsExecutor.executeScript("arguments[0].click();", element);
答案 2 :(得分:0)
我遇到了同样的情况:点击发布按钮使用selenium。
1)在Ruby中,有一个名为PageObject的宝石叫做PageObject。
在其中,有一个名为in_iframe的方法。它用于选择iframe中的元素。看看这段代码:
class RegistrationPage
include PageObject
in_frame(:id => 'left-frame') do |outer_frame|
in_frame({:id => 'left-top-frame'}, outer_frame) do |inner_frame|
text_field(:address, :id => 'address_id', :frame => inner_frame)
end
end
end
2)至于发布按钮,我检查了元素,发现发布按钮是嵌套的iframe:
检查您的代码是否正在处理嵌套iframe中的元素
欢呼声