Java 如何在警报中单击按钮?
我必须使用Java 如何在警报中单击按钮?,java,selenium,Java,Selenium,我必须使用java和selenium实现自动化。 我必须单击带有标签条款和条件的链接,它会显示一个框,然后我需要向下导航,然后单击同意按钮 我已经试过: driver.click("//*[@id=\"field_terms\"]/td[2]/div/div/label[1]/a"); // Click on the link 它为我打开了盒子,但我在后面卡住了 我有两个问题: 如何在弹出窗口中搜索 如何单击同意按钮 更新: 关于滚动问题,我使用了以下不起作用的方法: pu
java
和selenium
实现自动化。
我必须单击带有标签条款和条件的链接,它会显示一个框,然后我需要向下导航,然后单击同意按钮
我已经试过:
driver.click("//*[@id=\"field_terms\"]/td[2]/div/div/label[1]/a"); // Click on the link
它为我打开了盒子,但我在后面卡住了
我有两个问题:
如何在弹出窗口中搜索
如何单击同意按钮
更新:
关于滚动问题,我使用了以下不起作用的方法:
public void scrollDown() {
JavascriptExecutor jsx = (JavascriptExecutor)driver;
jsx.executeScript("arguments[0].scrollTop = arguments[1];","window.scrollBy(0,450)", "");
}
让我们从滚动开始:只需使用JavaScript
JavascriptExecutor jsx = (JavascriptExecutor)driver;
jsx.executeScript("window.scrollBy(0,450)", "");
或者你可以向上滚动到需要的元素
((JavascriptExecutor)driver.executeScript(“参数[0].ScrollingToView(true);”,您的Web元素)代码>
对于单击“我同意”,请使用如下XPATH:
“//*[text()='I AGREE']”
然后只需执行单击()
希望这对你有帮助 尝试使用CSS选择器定位“我同意”按钮
'div[class="ui-dialog-buttonset"]>button[btnclass="primary"]'
它在我的系统中起作用。我不是Java人,这是我用python编写的代码,供您参考
driver = Chrome()
driver.get('https://signup.insly.com/signup')
terms_and_conditions = driver.find_element_by_link_text('terms and conditions')
terms_and_conditions.click()
import time
time.sleep(2)
i_agree = driver.find_element_by_css_selector(
'div[class="ui-dialog-buttonset"]>button[btnclass="primary"]'
)
i_agree.click()
下面是Java[测试和工作]中的代码
System.setProperty("webdriver.chrome.driver", System.getProperty("user.dir") + "/src/drivers/chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("https://signup.insly.com/signup");
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
driver.findElement(By.linkText("terms and conditions")).click();
//Click the I AGREE button
WebElement btnIagree = driver
.findElement(By.xpath("//button[@btnclass='primary' and contains(text(),'I agree')]"));
btnIagree.click();
//Verify the check box for T&C is checked
WebElement chkbxTnC=driver.findElement(By.xpath("//*[@id='agree_termsandconditions']/../span[@class='icon-check-empty icon-check']"));
Assert.assertTrue(chkbxTnC.isDisplayed());
问题是,只要你点击T&C链接,加载页面就需要几秒钟的时间,因为在点击“我同意”按钮之前需要等待。显然,“我同意”按钮是启用的,无需向下滚动即可单击,因此此处不需要滚动 谢谢,我对解决按钮问题更感兴趣。我已经用你的答案更新了我的问题,我发现了新的错误got@KamyarParastesh我明天再试一次。。。希望您能尽快找到解决方案!这不是JS警报,因此警报
对其无效。它与页面的其余部分一样是HTML。发布“我同意”按钮的相关HTML,我们可以提供帮助。@JeffC抱歉,但是您如何确定它不是一个警报,它是由css
更改的?您应该查看不同的JS警报。看起来一点也不像他们。确认这一点的一种方法是右键单击它,查看是否有上下文菜单,是否可以检查HTML。如果可以,那么您知道这不是JS警报。如何向下滚动?要向下滚动/要使elemet可见,请参阅