无法单击Sitecore中的“发布”按钮

时间:2017-04-04 14:58:36

标签: selenium selenium-webdriver

我无法点击Sitecore中的发布按钮。它显示无法定位元素。 我使用了driver.findElement(By.xpath("//*[@id='NextButton']")).click(); driver.findElement(By.xpath("/html/body/form/div[2]/div[2]/button[2]")).click(); 以下的表达式,但它们没有用:

{{1}}

请参阅屏幕截图了解更多详情。 enter image description here

3 个答案:

答案 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: enter image description here

检查您的代码是否正在处理嵌套iframe中的元素

欢呼声