0

クリックできないフィールドをクリックしようとしています。画面のスクリーンショットを添付しています。

ページの背後にある Html コードは次のとおりです。

<td class="x-grid3-col x-grid3-cell x-grid3-td-TRAVNAME " style="width:  234px;" tabindex="0">
<div class="x-grid3-cell-inner x-grid3-col-TRAVNAME"   unselectable="on">ARUNACHALAM/SHAN</div>
</td>

私が書いたコードは C# で、次のとおりです。

Thread.Sleep(1000);
Driver.Instance.FindElement(By.XPath("//*[@id='ext - gen13']/div/table/tbody/tr/td[3]/div")).Click();

フィールドが見つからないという例外をスローします。

誰か助けてくれませんか?ここに画像の説明を入力

4

2 に答える 2

1

以下のように使用してみてくださいWebDriverWait:-

var wait = new WebDriverWait(Driver.Instance, TimeSpan.FromSeconds(20));
var el =    wait.Until(ExpectedConditions.ElementIsVisible(By.CssSelector("td.grid3-td-TRAVNAME div.x-grid3-col-TRAVNAME")));
el.Click();

編集済み: 残念ながら が原因でクリックできない場合は、以下のようunselectable="on"に使用してクリックする前に、この属性プロパティを削除しIJavascriptExecutorてください:-

var wait = new WebDriverWait(Driver.Instance, TimeSpan.FromSeconds(20));
var el =    wait.Until(ExpectedConditions.ElementIsVisible(By.CssSelector("td.grid3-td-TRAVNAME div.x-grid3-col-TRAVNAME")));

IJavaScriptExecutor js = Driver.Instance as IJavaScriptExecutor;
el = (IWebElement)js.ExecuteScript("arguments[0].removeAttribute('unselectable'); return arguments[0];", el);
el.Click();

編集:- cssSelector はここでは機能しません 以下のように使用By.Xpath()してみてください:-

var el =    wait.Until(ExpectedConditions.ElementIsVisible(By.Xpath(".//div[contains(text(), 'ARUNACHALAM/SHAN')]")));
于 2016-08-03T20:54:57.217 に答える