繁体   English   中英

我如何在C#中使用Selenium Webdriver单击图像?

[英]how can i click on image using selenium webdriver in c#?

我正在尝试使用带有C#的Selenium Webdriver来实现自动测试。 我的页面的右下角有一个使用JavaScript制作的图片按钮。

我的HTML代码:

 <html> <head> <meta charset="utf-8"> <title>Sanofi - Digital Value Chain</title> <base href="/"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="description" content=""> <meta name="author" content=""> <link rel="icon" type="image/x-icon" href="assets/favicon-sanofi.png"> <link href="styles.e3154dfb8e8b22c30979.bundle.css" rel="stylesheet"/></head> <body> <app-root>Automatic testing page - Chatbot with Selenium + C# </app-root> <!-- Avaamo Chatbot --> <script type="text/javascript"> var AvaamoChatBot=function(t){function o(t,o){var n=document.createElement("script");n.setAttribute("src",t),n.onload=o,document.body.appendChild(n)}return this.options=t||{},this.load=function(t){o(this.options.url,function(){window.Avaamo.addFrame(),t&&"function"==typeof(t)&&t(window.Avaamo)})},this}; var chatBox = new AvaamoChatBot({url: 'https://c0.avaamo.com/web_channels/47afd7fd-6473-445a-bb87-4b4c46c51b94?locale=eng&bot_typing_duration=60000'}); chatBox.load(); </script> <script type="text/javascript" src="inline.c239ca988071a28dfcf5.bundle.js"></script><script type="text/javascript" src="polyfills.1c766e36408e34083505.bundle.js"></script><script type="text/javascript" src="scripts.c7b8f195ebee14d64454.bundle.js"></script><script type="text/javascript" src="vendor.b1d0922e092ba105d6d7.bundle.js"></script><script type="text/javascript" src="main.44cb2cdc7217ee361473.bundle.js"></script></body> </html> 

因此,我正在尝试使用此C#代码,但无法正常工作。

//Create the reference for our browser
IWebDriver driver = new ChromeDriver();

//Navigate to LANDING PAGE
driver.Navigate().GoToUrl(BOT_ADDRESS_LOCAL_DISC);

//Maximize window       
driver.Manage().Window.Maximize();

//Aguarda 3 segundos até carregar o BOT
System.Threading.Thread.Sleep(10000);

//Find and click on CHATBOT Button
driver.FindElement(By.XPath("text/javascript")).Click();

//Wait until load all details.
System.Threading.Thread.Sleep(2000);

有谁对此有解决方案?

您可以使用cssSelector:

driver.FindElement(By.CssSelector("script[type='text/javascript']")).Click();

要单击图像按钮,您必须启动WebDriverWait,并且可以使用以下代码行:

IWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(3))
wait.Until(ExpectedConditions.ElementToBeClickable(By.XPath("//link[@rel='icon' and contains(@href,'favicon-sanofi.png')"))).Click();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM