【问题标题】:How to specify ENTER button functionality in Selenium WebDriver code using C#如何使用 C# 在 Selenium WebDriver 代码中指定 ENTER 按钮功能
【发布时间】:2021-09-07 00:30:58
【问题描述】:

为了练习,我正在为 irctc 网站编写测试用例,我需要输入 from 站位置,然后带有该代码的各个站将显示为引导下拉菜单,现在我必须在其中选择一个,然后单击 Enter。不幸的是,从和 to 文本字段没有输入/提交按钮,请帮我继续这个测试用例

这是我的代码

IWebElement Fromstn = driver.FindElement(By.XPath("//*[@id='divMain']/div/app-main-page/div/div/div[1]/div[1]/div[1]/app-jp-input/div/form/div[2]/div[1]/div[1]/span/i"));
                 Thread.Sleep(2000);
                  Fromstn.SendKeys("MAQ");
                  Fromstn.Click();
 ```**OR**

Actions builder = new Actions(driver);动作悬停 = builder.MoveToElement(driver.FindElement(By.XPath("//*[@id='origin']"))); hover.Build().Perform();线程.睡眠(2000); hover.SendKeys("MAQ"); hover.Click();

【问题讨论】:

  • 您尝试过任何代码吗?有什么错误吗?
  • 是的,如果我提供 sendKeys 或单击 WebElement,它会引发元素不可交互的异常
  • 请分享你尝试过的xpath
  • 我尝试了 Actions aswel,Actions builder = new Actions(driver);动作悬停 = builder.MoveToElement(driver.FindElement(By.XPath("//*[@id='origin']"))); hover.Build().Perform();线程.睡眠(2000); hover.SendKeys("MAQ");悬停。点击();两者都不起作用.....如何在此处输入文本以及如何选择相应的电台

标签: c# selenium webdriver dropdown enter


【解决方案1】:

来自输入试试下面的css:

p-autocomplete#origin input

要输入试试下面的css:

p-autocomplete#destination input

代码:

driver.FindElement(By.CssSelector("p-autocomplete#origin input")).SendKeys("MAQ");
driver.FindElement(By.CssSelector("p-autocomplete#destination input")).SendKeys("some to station");

如果你想使用键盘输入,那么可以使用sendkeys():

类似这样的:

driver.FindElement(By.CssSelector("p-autocomplete#origin input")).SendKeys("MAQ" + Keys.RETURN);

【讨论】:

  • 是否可以自动选择下拉值,只要我们输入前 3 个字母......就像我输入 MAQ,下拉显示 MANGALURU CNTL-MAQ 并且必须选择它......而不是像 Keys.return 那样手动完成
  • keys.return 不应该是手动的吧?你怎么用这个?是的,我们可能需要将鼠标悬停在自动填充的选项上并点击它。
  • 是的,它不应该是手动的....现在我正在选择自动填充选项并手动单击它
  • 不,不,你不应该那样做,你登录应用程序吗?
  • 我的意思是你能告诉我你的自动化步骤..比如启动 irctc.com 然后..
【解决方案2】:

看看这是否有效:-

driver.FindElement(By.XPath("//label[text()='From']/..//input")).SendKeys("MAQ");
//Add a wait time for the drop down value to load
Actions builder = new Actions(driver); 
Actions hover = builder.MoveToElement(driver.FindElement(By.XPath(".//ul[@id='pr_id_1_list']/li"))).Click().Perform();

【讨论】:

  • 你是在 sendKeys() 之后添加等待时间吗?
【解决方案3】:

你可以试试这个代码。对于调试,请参阅快速监视中的 Fromstn 对象,看看它是否返回了正确的元素。对于调试,您还可以通过“检查元素”查看元素仍处于表单中,并使用断点时给出的 Xpath 进行查找。

IWebElement Fromstn = driver.FindElement(By.XPath("//*[@id='divMain']/div/app-main-page/div/div/div[1]/div[1]/div[1]/app-jp-input/div/form/div[2]/div[1]/div[1]/span/i"));
Thread.Sleep(2000); //you can also try by increasing the value for testing say 10 seconds
Fromstn.Clear();
Fromstn.SendKeys("MAQ");
Fromstn.Click();

【讨论】:

    猜你喜欢
    • 2020-10-17
    • 1970-01-01
    • 2016-10-16
    • 2015-06-28
    • 1970-01-01
    • 1970-01-01
    • 2013-07-07
    • 2014-03-06
    • 2019-08-31
    相关资源
    最近更新 更多