2017-01-09 77 views
2

我想点击一个网页的按钮,但我不知道如何选择并点击Selenium按钮。选择并点击一个带有C#selenium中的CSS选择器的按钮

目标源代码如下:

<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(); 

} 
} 

我想知道如何选择并单击登录按钮。谢谢你的阅读。

+0

这是你的onclick:ログイン ....不是“返回”..我会从那里开始。 – Aaron

回答

2

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

你可以尝试[onclick~="return"]发现有onclick属性与价值与return开始元素,但我真的不认为这是一个好主意。

另一个选项是针对login-bt类中的锚:

span.login-bt a 
+0

谢谢!有效。但我无法清楚地理解这个表达。它是XPath的表达式吗? – 8berry

+0

其中哪些?在那里有两个(呃...实际上没有一个是xpath) – Dekel

+0

属性选择器看起来像XPath谓词,但是不相关。 – BoltClock

0

理想的情况下,出于性能考虑,你应该把一个ID上的按钮,如果你有超过所呈现的HTML控制。否则,如Dekel所建议的,关闭父跨度是您的最佳选择。