我正在尝试找到"更新个人资料图片按钮的唯一定位器"在我的Facebook帐户中使用它进行自动化测试(使用java的selenium webdriver)。
我使用driver.findElement(By.className("_156p")).click();
,但它不起作用。
我应该使用什么?!
答案 0 :(得分:0)
无法看到html源代码的其余部分,我无法肯定地说,但我的猜测是该类实际上是在源代码中定义的。仅使用类名的问题是类名在页面上不必是唯一的。类名的唯一版本是id,如果您正在测试可编辑的代码,请尝试使用大量ID。
如果情况并非如此,处理您自己编辑的代码的一种不错的方法是使用css选择器。关于做它们的真正好的信息here。
另一个好的调试选项是使用javascript或python从终端运行webdriver。由于这些语言未编译,您可以实时运行它们,这可以让您更快地调整类名。如果您没有使用python的经验,请检查this。通过使用python / javascript,您可以创建webdriver,然后在同一页面上继续键入driver.find_element_by_whatever("value_to_find")
。这比从头开始为每个不同的“value_to_find”运行java程序要快得多。
答案 1 :(得分:0)
由于您提供的页面源非常有限,因此无法提供稳定的定位器。如何通过xpath使用文本获取div。
"//div[.='Update Profile Picture']"
答案 2 :(得分:0)
试试这个:
WebElement element = driver.findElement(By.className("_156n"));
JavascriptExecutor executor = (JavascriptExecutor)driver;
executor.executeScript("arguments[0].click();", element);
为我工作。