ページの上部にあるボタンをクリックしようとしていますが、CSSセレクターを使用していますが、ローカルEclipseで実行すると完璧に機能しますが、ローカルマシンのJenkinsサーバーで実行しようとすると失敗します、クリックできない要素を言います。 Jenkinsで失敗したテストのスクリーンショットを見ると、クリックしたいボタンにヘッダーが重なっていることがわかります。 XPath、CSS、要素への移動、マウスの移動を使用して、ほぼすべてを試しました。しかし、まだそれを修正することはできません、誰か助けてください。
ボタンを追加をクリックします
org.openqa.Selenium.WebDriverException: Element is not clickable at point (775.25, 10.166671752929688). Other element would receive the click: <div class="globalHeader-UtilTop"></div>
Command duration or timeout: 69 milliseconds
Build info: version: '2.53.0', revision: '35ae25b1534ae328c771e0856c93e187490ca824', time: '2016-03-15 10:43:46'
System info: Host', ip: '', os.name: 'Windows 7', os.Arch: 'AMD64', os.version: '6.1', Java.version: '1.7.0_80'
<div class="Componet-intels**strong text**-Container">
<div class="Componet-intels-Container-Header">
<div class="Componet-intels-Container-Content">
<div class="Componet-intels-Container-Content-Row">
<span class="Componet-intels-Item"> Item # </span>
<span class="Componet-intels-Text-Item">
<span class="Componet-intels-Lable-Quantity"> Qty: </span>
<span class="Componet-intels-Text-Quantity">
<span class="Componet-intels-Button">
**<input class="Componet-intelsButtonIcon" type="button" value="Add">**
</span>
</div>
要素はポイントでクリックできません(775.25、10.166671752929688)。他の要素はクリックを受け取ります:
この場合、クリックしたい要素は他の要素divによって非表示になり、クリックを受け取ることになります。
私はそれがUIの問題であり、ヘッダーが要素を隠すべきではないと思うが、あなたはいくつかのことを試すことができます:
Webdriverからブラウザーのウィンドウを最大化して、ヘッダーがまだ要素を非表示にするかどうかを確認します
driver.manage().window().maximize()
JavaScriptを使用して要素をクリックする
WebElement element = driver.findElement(By.<locator>);
JavascriptExecutor executor = (JavascriptExecutor)driver;
executor.executeScript("arguments[0].click()", element)`
私の場合、いくつかのグラフがロードされてからajax画像が表示された後にのみ表示されるボタンをクリックする必要がありました。以下の手順は、問題を解決するのに役立ちました。
Ajax呼び出しが完了すると消える_xpath/css
_を特定し、invisible-wait.until(ExpectedConditions.invisibilityOf(element));
になるまで明示的に待機します
ボタンがclickable-wait.until(ExpectedConditions.elementToBeClickable(element));
になるまでのもう1つの明示的な待機
JavaScriptを使用してボタンをクリックします
_WebElement element = driver.findElement(By.xpath("")); JavascriptExecutor js = (JavascriptExecutor)driver;
_
js.executeScript("arguments[0].click()", element);
それでもうまくいかない場合は、ステップ1と2の間に暗黙の待機を挿入してみてください。
JavascriptExecutor。:-を使用します
WebElement element = driver.findElement(By.<locator>);
JavascriptExecutor executor = (JavascriptExecutor)driver;
executor.executeScript("arguments[0].click()", element)