在网页上自动与JavaScript交互

在网页上自动与JavaScript交互,java,javascript,html,selenium,webpage,Java,Javascript,Html,Selenium,Webpage,所以我用Selenium控制网页已经有几天了(填写表单、从一个页面转到另一个页面等等),但我遇到了一个我无法解决的问题 将信息发送到用HTML构建的网页是一回事。在这种情况下,我可以通过HTML代码(通常是标记)访问页面的所有部分(至少在大多数情况下),但是当表单和页面的其他部分用JavaScript编写时,我不知道如何访问不同的元素。对于带有HTML的网页,我通常会执行以下操作: WebDriver driver = new FirefoxDriver(); WebElement elemen

所以我用Selenium控制网页已经有几天了(填写表单、从一个页面转到另一个页面等等),但我遇到了一个我无法解决的问题

将信息发送到用HTML构建的网页是一回事。在这种情况下,我可以通过HTML代码(通常是标记)访问页面的所有部分(至少在大多数情况下),但是当表单和页面的其他部分用JavaScript编写时,我不知道如何访问不同的元素。对于带有HTML的网页,我通常会执行以下操作:

WebDriver driver = new FirefoxDriver();
WebElement element;

driver.get("https://somepage.com");
element = driver.findElement(By.name("email_address"));
element.sendKeys("somename@gmail.com");
element = driver.findElement(By.name("password"));
element.sendKeys("pass");
element.submit();

但这在使用JavaScript制作元素的页面上不起作用。有什么建议吗?

所以您的基本问题是:“如何使用selenium测试javascript逻辑”。如果可能的话,谷歌会知道的。然而,这是一个很难解决的问题,考虑到浏览器已经变成了自己的复杂机器,只是为了能够正确有效地运行javascript逻辑。“使用javascript制作”?…它们仍然是DOM中的元素。没关系。好吧,但是我如何找到元素的名称,或者如何访问元素?对于一个普通的HTML站点来说,这很容易,但是对于这个站点,我正在尝试,我已经尝试了所有关于访问Selenium站点中元素的内容,但没有成功。