我有一個 HTML 元素,如下所示:<td title="11607" style="text-overflow:ellipsis;white-space:nowrap;">11607</td>我用來查找元素的定位器是:string number= "11607";IWebElement element = DriverUser.FindElement(By.XPath(string.Format("//*[contains(text(),'{0}')]" , number)));我想使用 selenium 網絡驅動程序標記文本 11607,在搜索了很長時間后,我找到了 2 個解決該問題的方法;第一個解決方案似乎是最合適的,但對我不起作用。我想知道是因為 HTML 標簽是 TD 還是因為它不是正確的解決方案。另一個解決方案有效,但我想改進它。我將在下面詳細說明:第一個解決方案是:(取自Highlight text using Selenium)public static void HighlightText(this IWebElement element) { element.Click(); Actions actions = new Actions(Driver); actions.SendKeys(Keys.Home).Build().Perform(); int length = element.Text.Length; actions.KeyDown(Keys.LeftShift); for(int i = 0 ; i < length ; i++) { actions.SendKeys(Keys.ArrowRight); } actions.KeyUp(Keys.LeftShift); actions.Build().Perform(); }當我運行它時,它什么也沒做。也許是因為我的標簽是 TD 標簽而不是 INPUT 或類似的東西?第二種解決方案是:(取自https://www.edgewordstraining.co.uk/2018/02/23/highlighting-web-elements/,并出現在其他地方) public static void HighlightTextJS(this IWebElement element) { var jsDriver = ( IJavaScriptExecutor ) Driver; string highlightJavascript = @"$(arguments[0]).css({ ""background"" : ""DodgerBlue""});"; jsDriver.ExecuteScript(highlightJavascript , new object[] { element }); }它標記了元素的所有背景,而不僅僅是字母。我想準確地模擬在文本上拖動鼠標光標。根據隨附的屏幕截圖,我得到了像第一行(11604)這樣的視圖,但對像第二行(11602)這樣的視圖感興趣也許有一個屬性我可以添加到 CSS 來模擬它?
1 回答

白板的微信
TA貢獻1883條經驗 獲得超3個贊
我為您找到了解決方案的 C# 語法。
new Actions(Driver).MoveToElement(element, 1, 1).ClickAndHold().MoveToElement(element, element.Size.Width-1, 1).Release().Perform();
在您的嘗試中,它從元素的中心開始,直到從元素的中心計算出的元素寬度。但這應該從元素的左上角開始,直到元素的寬度。
希望這對你有用。
- 1 回答
- 0 關注
- 133 瀏覽
添加回答
舉報
0/150
提交
取消