我想单击一个按钮,我有此信息。没有id,我只有以下代码:
如何使用突出显示的信息制作findElement
?
我尝试过
driver.findElement(By.cssSelector("icon f_checkbox inlblk vtop")).click();
答案 0 :(得分:2)
您需要告诉驾驶员那是类
driver.findElement(By.cssSelector("[class='icon f_checkbox inlblk vtop']")).click();
或简化
driver.findElement(By.cssSelector(".icon.f_checkbox.inlblk.vtop")).click();
如果要使用for
属性
driver.findElement(By.cssSelector("[for='renderCheckbox1-1']")).click();
答案 1 :(得分:1)
使用CSS选择器时,需要遵循一些规则,例如Here。
对于CSS中的类,它只是“.”
,而不是
driver.findElement(By.cssSelector("icon f_checkbox inlblk vtop").click();
尝试(鉴于这是唯一的类,否则您可能需要共享HTML的较大部分)(如Guy所建议的那样)。
driver.findElement(By.cssSelector(".icon.f_checkbox.inlblk.vtop").click();
答案 2 :(得分:1)
有多种使用$jsTime
发送多个 classname 的方法,您可以使用以下任一Locator Strategies:
仅使用css-selectors和 classNames 如下:
findElement()
使用css-selectors以及 tagName 和 classnames 如下:
driver.find_element_by_css_selector(".icon.f_checkbox.inlblk.vtop")
使用xpath如下:
driver.find_element_by_css_selector("label.icon.f_checkbox.inlblk.vtop")
但是,根据您共享的HTML,您可能需要合并其他一些属性以在DOM Tree中唯一地定位元素,并且可以使用以下任一 Locator Strategies :
使用css-selectors以及 tagName 和 classnames 如下:
driver.find_element_by_xpath("//label[@class='icon f_checkbox inlblk vtop']")
使用xpath如下:
driver.find_element_by_css_selector("label.icon.f_checkbox.inlblk.vtop[for='renderCheckbox1-1']")