【问题标题】:select and click a button with CSS selector in C# selenium在 C# selenium 中选择并单击带有 CSS 选择器的按钮
【发布时间】:2017-05-24 00:16:03
【问题描述】:

我想点击网页的一个按钮,但我不知道如何用 Selenium 选择和点击一个按钮。

目标来源如下:

<span class="login-bt">
<a href="#" onclick="return sChangeURL('GB2101_KAIINLOGIN','https://north2.eplus.jp/sys/main.jsp')" >ログイン</a>
</span>

这是我的代码。

using OpenQA.Selenium.Firefox;
using OpenQA.Selenium;


class Test
{
static void Main(string[] args)
{
    IWebDriver driver = new FirefoxDriver();
    driver.Navigate().GoToUrl("http://north2.eplus.jp/sys/main.jsp?uji.verb=GGWP01_mousikomi&uji.bean=B.apl.web.JOAB070100Bean&uketsukeInfoKubun=001&ZScreenId=GGWA01&_ga=1.146803575.1900392715.1483976716");
    IWebElement query = driver.FindElement(By.Id("LoginId"));
    query.SendKeys("*******@gmail.com");

    IWebElement query2 = driver.FindElement(By.Id("LoginPassword"));

    query2.SendKeys("******");


   IWebElement a = driver.FindElement(By.CssSelector("onclick=\"return"));

   a.Click();

}
}

我想知道如何选择并点击登录按钮。感谢您的阅读。

【问题讨论】:

标签: c# selenium css-selectors


【解决方案1】:

理想情况下,出于性能原因,如果您可以控制呈现的 html,则应该在按钮上放置一个 id。否则,按照 Dekel 的建议关闭父跨度是您的最佳选择。

【讨论】:

    【解决方案2】:

    您的问题是 onclick=\"return 不是 CSS 选择器。

    你可以尝试[onclick~="return"]来查找具有onclick属性且值以return开头的元素,但是我真的不认为这是个好主意。

    另一种选择是定位 login-bt 类中的锚点:

    span.login-bt a
    

    【讨论】:

    • 谢谢!有效。但我无法清楚地理解这个表达。它是 XPath 的表达式吗?
    • 其中哪一个?那里有两个(嗯......实际上它们都不是xpath)
    • 属性选择器看起来像 XPath 谓词,但在其他方面不相关。
    猜你喜欢
    • 1970-01-01
    • 2020-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-14
    • 1970-01-01
    • 2023-03-26
    相关资源
    最近更新 更多