C#-Selenium无法找到JS

时间:2019-07-22 18:20:51

标签: c# selenium

我有一些代码可以执行Selenium,但是Selenium无法更新用于定位元素的PageSource

driver = new ChromeDriver("D:\\chrome-driver\\75", new ChromeOptions(), TimeSpan.FromMinutes(2));                
driver.Url = "https://website.com";

Thread.Sleep(10000); // Gives it time to process the internal JS

IWebElement emailTextBox = driver.FindElement(By.XPath("//*[@id='text1']"));
IWebElement passwordTextBox = driver.FindElement(By.XPath("//*[@id='text2']"));
IWebElement signUpButton = driver.FindElement(By.XPath("//*[@id='button']"));

emailTextBox.SendKeys("email");
passwordTextBox.SendKeys("password");
signUpButton.Click();

问题是Selenium仅使用下载时的页面,但实际上用户将使用部分由JavaScript渲染的网页,因此Selenium看到了例如。

<html>
  Hello World
  <script src="code.js"/>
</html>

实际页面(呈现后)包含所有用于登录的组件。

登录网址为:https://myibd.investors.com/secure/signin.aspx?eurl=https%3A%2F%2Fresearch.investors.com%2Fstock-lists%2Fbig-cap-20%2F

您会注意到,如果您尝试找到Email TextBox来输入电子邮件,则实际上永远找不到它。 Xpath的{​​{1}}是Email

那么,如何使Selenium知道JS所做的修改?

0 个答案:

没有答案