Javascript 按类型单击selenium中的项目
我尝试单击的元素没有名称或ID,每次刷新页面时类都会更改。css中唯一一致的是值。如何让selenium按值单击元素?它不一定非得是具体的值,我只想单击元素 CSS:Javascript 按类型单击selenium中的项目,javascript,css,selenium,Javascript,Css,Selenium,我尝试单击的元素没有名称或ID,每次刷新页面时类都会更改。css中唯一一致的是值。如何让selenium按值单击元素?它不一定非得是具体的值,我只想单击元素 CSS: findElement(By.xpath(//option[@val='4'])。单击() driver.findElement(By.css('tr[val=“4”])。单击() 将val的措辞更改为value不会起任何作用 没有足够的代表发布图片: 如果您试图基于该值单击td,则必须使用以下xpath driver.fin
findElement(By.xpath(//option[@val='4'])。单击()
driver.findElement(By.css('tr[val=“4”])。单击()
将val的措辞更改为value不会起任何作用
没有足够的代表发布图片:
如果您试图基于该值单击td,则必须使用以下xpath
driver.findElement(By.xpath("(//tr[contains(@class,'MuiTableRow-root')])[1]//td[.='4']")).click()
在xpath中不能使用值的原因是,没有与tr
关联的value属性 您就快到了,在中,您可以使用@
作为属性名称的前缀进行选择:
//tr[@val='4']
演示:
更多信息:请尝试以下代码:
WebElement element = driver.findElement(By.xpath("//tr[starts-with(@class,'MuiTableRow')][@val='4']"));
element.click();
“没有这样的元素:找不到元素”是我从您的代码中得到的错误,并且一直得到。不过,它不必是按值的,我只是假设这是最简单的方法trydriver.findElement(by.xpath(“/tr[contains(@class,'MuiTableRow-root'))[1]”)。单击()
以确保该行位于。try-driver.findElement(by.css(//tr val='4'])。单击()并且得到了“无效选择器:指定了无效或非法的选择器”抱歉,我是用xpath而不是css完成的,并且找不到元素。当我让selenium等待网页加载时,这就成功了,谢谢!
WebElement element = driver.findElement(By.xpath("//tr[starts-with(@class,'MuiTableRow')][@val='4']"));
element.click();