Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.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
Java 根据div中的某些文本单击按钮_Java_Selenium - Fatal编程技术网

Java 根据div中的某些文本单击按钮

Java 根据div中的某些文本单击按钮,java,selenium,Java,Selenium,如何根据文本“查看更多”或“注册”单击按钮 查看更多 注册 或者基于上面的html,你能看到一种独特的识别和点击这两个按钮的方法吗 谢谢< p>可以使用XPath(考虑XPath不是大的和丑陋的)每个按钮将分开。 如果XPATH很难看并且很长时间使用正则表达式,其中数据reactid包含“查看更多”按钮的“主菜单查看更多”。数据ID包含注册按钮的主菜单“注册” "//*[contains(@data-reactid,'main-menu-see-more')]" " //*[contai

如何根据文本“查看更多”或“注册”单击按钮


查看更多
注册
或者基于上面的html,你能看到一种独特的识别和点击这两个按钮的方法吗

谢谢

< p>可以使用XPath(考虑XPath不是大的和丑陋的)每个按钮将分开。

如果XPATH很难看并且很长时间使用正则表达式,其中数据reactid包含“查看更多”按钮的“主菜单查看更多”。数据ID包含注册按钮的主菜单“注册”

"//*[contains(@data-reactid,'main-menu-see-more')]"

 " //*[contains(@data-reactid,'main-menu-sign-up')]"
链接文本“查看更多”和“注册”如何

请分享你的反馈,它不工作……

< P>你可以使用XPath(考虑XPath不是大的和丑陋的)每个按钮将是分开的。 如果XPATH很难看并且很长时间使用正则表达式,其中数据reactid包含“查看更多”按钮的“主菜单查看更多”。数据ID包含注册按钮的主菜单“注册”

"//*[contains(@data-reactid,'main-menu-see-more')]"

 " //*[contains(@data-reactid,'main-menu-sign-up')]"
链接文本“查看更多”和“注册”如何


请分享您的反馈,它不起作用……

使用contains text()识别“查看更多”和“注册”应该起作用

By.xpath(“//按钮[包含(text(),'See More')]”)
By.xpath(“//按钮[contains(text(),'Sign Up')]”

使用contains text()标识为“查看更多”和“Sign Up”,应该可以使用

By.xpath(“//按钮[包含(text(),'See More')]”)
By.xpath(“//button[contains(text(),'Sign-Up')]”

除非绝对必要,否则我避免使用xpath,因为它比较复杂,速度比其他方法慢,而且(通常)更容易崩溃。我会使用CSS选择器来实现这一点

datareactid
对于这些元素中的每一个都是唯一的,因此我将使用它们来查找所需的元素,而不是文本

driver.findElement(By.cssSelector("button[data-reactid='.0.0.$LandingPage.0.1.0.0.1.0.3.$main-menu-see-more']")).click();
此代码找到具有指定的
数据ID的
按钮
,然后单击该按钮

CSS选择器非常强大,它可以避免XPath。。。这是一件好事


除非绝对必要,否则我会避免使用XPath,因为它比较复杂,速度比其他方法慢,而且(通常)更容易崩溃。我会使用CSS选择器来实现这一点

datareactid
对于这些元素中的每一个都是唯一的,因此我将使用它们来查找所需的元素,而不是文本

driver.findElement(By.cssSelector("button[data-reactid='.0.0.$LandingPage.0.1.0.0.1.0.3.$main-menu-see-more']")).click();
此代码找到具有指定的
数据ID的
按钮
,然后单击该按钮

CSS选择器非常强大,它可以避免XPath。。。这是一件好事


谢谢。我将很快尝试并让您知道。感谢您今天对我的问题的帮助。:-)谢谢我将很快尝试并让您知道。感谢您今天对我的问题的帮助。:-)@ratsstack:若答案对你们有用,请接受。@ratsstack:若答案对你们有用,请接受。