c# - Selemium 在网站上找不到元素
问题描述
我正在使用 C#,我无法从嵌套表的文本框中获取结算日期。你能帮我么?
我尝试了以下方法:-
driver.FindElement(By.Id("settlementdate"))
driver.FindElement(By.Name("settlementdate"));
driver.FindElement(By.Name("//*[@id='settlementdate']");
driver.FindElement(By.Name("//input[@id='settlementdate']");
解决方案
要定位所需的元素,因此您必须为所需的元素诱导WebDriverWait,ElementToBeClickable()
您可以使用以下任一Locator Strategies:
CssSelector
:IWebElement element = new WebDriverWait(driver, TimeSpan.FromSeconds(20)).Until(ExpectedConditions.ElementToBeClickable(By.CssSelector("table#headtable tr td input#settlementdate[name='settlementdate']")));
XPath
:IWebElement element = new WebDriverWait(driver, TimeSpan.FromSeconds(20)).Until(ExpectedConditions.ElementToBeClickable(By.XPath("//table[@id='headtable']//tr//td//input[@id='settlementdate' and @name='settlementdate']")));
推荐阅读
- javascript - 如何将大文件直接下载到磁盘,而不将其存储在服务器和浏览器的 RAM 中?
- c# - 捕获自定义 JsonConverter 抛出的异常
- javascript - 我无法在 Tampermonkey 的特定事件中播放声音
- python - 在 Python 中使用 Squeezenet 的 ImportError
- python - 如何在 Pandas 中使用 groupby 划分 2 个聚合列?
- javascript - 在反应中更新渲染组件的状态
- docker - 在 docker tensorflow/tensorflow:latest-gpu 中找不到 libcuda.so DSO
- azure-devops - Azure 管道 docker 无法复制多个项目
- python - 使用序列设置数组元素(Python)
- javascript - apply() 的输出