复选框-要自动化
上面是要自动化的复选框的图片,检查时显示元素名称为标签::bef矿石。使用id或name只需打开其他链接。请帮助使用硒-Java选择复选框。
我对复选框的经验是,你必须点击复选框旁边的标签来设置它们。点击输入将导致OpenQA。硒。ElementNotVisibleException异常。可以按元素获取复选框的状态。选择(C#)或元素。isSelected(Java)但是你不能像点击它那样与它交互。
您可以通过XPath使用文本“//label[contains(text(),'Agree to our')]”或使用“//label[contains(@for,'term1')]”的属性来查找标签
通过使用Action类,使用xoffset=1和yoffset=1,将点击精确定位在标签的左上角,可以避免“使用条款”链接打开的问题。这种精确定位是必要的,因为在HTML中,锚定标记嵌套在标签标记中。我在你的网站上尝试了这个代码,它给出了正确的结果。
在C#中,使用PageObject/PageFactory,解决方案将是:
public class TestPage
{
private readonly IWebDriver _driver;
public TestPage(IWebDriver driver)
{
_driver = driver;
PageFactory.InitElements(driver, this);
}
[FindsBy(How = How.XPath, Using = "//label[contains(text(),'Agree to our')]")]
private IWebElement _labelInputCheckbox;
public void ClickLabelInputCheckbox()
{
var action = new OpenQA.Selenium.Interactions.Actions(_driver);
action.MoveToElement(_labelInputCheckbox,1,1).Click();
action.Perform();
}
}
您试图单击错误的元素。要单击的元素是右上方的输入
。
<input name="term1" id="term1" type="checkbox">
只需使用id,term1
,就可以做到这一点。
driver.findElement(By.id("term1")).click();
问题内容: 我有两个div元素。他们每个人都有450px的宽度和高度。如何检查第一个div是否与第二个div重叠? 我尝试使用javascript hittest,但是有点复杂。由于我试图找出其实际工作方式,因此我想从一个简单的代码开始。 我发现可以使用 .getClientRects 来获取元素的边界,但是我不确定如何比较边界。 请给我提意见! 问题答案: 类似这样的东西,并通过getBound
问题内容: 是否可以检查元素的CSS 或使用JavaScript? 问题答案: 元素具有一个属性,该属性可以告诉您想要什么,如果样式是内联声明的或使用JavaScript声明的: 将为您提供一个字符串值。 就像sdleihssirhc在下面说的那样,如果元素是被CSS规则继承或指定的,则需要获取其计算样式:
问题内容: 使用HTML,将创建一个复选框,如下所示: 使用javascript,我们可以选中以下复选框: 现在,我正在尝试使用jquery-mobile创建相同的页面。该复选框如下所示: 为什么这里没有呢?是这个名字吗?我应该删除属性名称并使用名称创建一个吗? 如何在此处使用Javascript / jQuery选中此复选框? 我尝试了上面的代码,但似乎不适用于此复选框。 问题答案: 您需要使用
我在Selenium中找不到此网站上的复选框 我尝试过:Xpath、ID、类型、操作键、文本和部分文本。我已经能够发送密钥(用户和密码)并找到user/pass元素。 > #检查框-标签-边距 提前谢谢你的帮助,我觉得我好像在兜圈子。
我正在编写一个Typescript/Productor测试,它需要评估和选择网格上的复选框元素。这些复选框缺少ID。因为我可以获得与这些复选框位于同一行的输入元素的句柄,所以我尝试通过元素查找器(by.id、by.xpath和by.css)的组合来获取它们。但我的尝试失败了。 我想写的是一个小函数,它将根据行上的远程“兄弟”元素和行上的复选框索引,从行中返回目标复选框元素。我已经尝试了几件事,我认
问题内容: 我要做的是,如何在显示警报框后的特定秒数内自动隐藏它? 我所知道的是 不需要这个,我想在几秒钟内显示警报后消失。 所需方案: 显示警报 在2秒内隐藏/终止警报 问题答案: 警报无法实现此功能。但是,您可以使用div 像这样使用: