Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 按类型单击selenium中的项目_Javascript_Css_Selenium - Fatal编程技术网

Javascript 按类型单击selenium中的项目

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

我尝试单击的元素没有名称或ID,每次刷新页面时类都会更改。css中唯一一致的是值。如何让selenium按值单击元素?它不一定非得是具体的值,我只想单击元素

CSS:


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();

“没有这样的元素:找不到元素”是我从您的代码中得到的错误,并且一直得到。不过,它不必是按值的,我只是假设这是最简单的方法try
driver.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();