我正在尝试在页面demo.rezi.co
的左侧找到工具提示,该提示根据属性标签显示房东。
我起草了下面的代码。
当我运行它时,它说:
线程“ main”中的异常org.openqa.selenium.NoSuchElementException:无此类元素:无法找到元素:{“ method”:“ xpath”,“ selector”:“ // a [@ label ='LANDLORDS' ]“}
到目前为止,这是我的代码:
// Test Landlord Tooltip
String expectedToolTip = "This is a test";
WebElement landlord = Driver.findElement(By.xpath("//a[@label='LANDLORDS']"));
System.out.println(landlord.getTagName());
答案 0 :(得分:0)
标签不是链接的属性,而是子级。如果您确实想通过文本a
选择LANDLORDS
,则必须使用以下命令:
"//label[contains(text(),'LANDLORDS')]/ancestor::a"
答案 1 :(得分:0)
我仍然不确定我是否正确理解了用例。但是,在网页13.3125
上,您需要将鼠标悬停在具有 LANDLORDS 文本的元素上,将鼠标悬停在该元素上,然后提取工具提示您可以使用以下解决方案:
代码块:
demo.rezi.co
控制台输出:
import java.util.List;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
public class q53216692_MouseHover {
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver", "C:\\Utility\\BrowserDrivers\\chromedriver.exe");
ChromeOptions options = new ChromeOptions();
options.addArguments("start-maximized");
options.addArguments("disable-infobars");
WebDriver Driver = new ChromeDriver(options);
Driver.get("https://demo.rezi.co/#!/tenant");
WebElement myElement = new WebDriverWait(Driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//label[.='LANDLORDS']")));
new Actions(Driver).moveToElement(myElement).perform();
List<WebElement> tool_tip_items = new WebDriverWait(Driver, 20).until(ExpectedConditions.visibilityOfAllElementsLocatedBy(By.xpath("//label[.='LANDLORDS']//following::div[1]//div[@class='layout-column']/label[1]")));
for (WebElement tool_tip:tool_tip_items)
System.out.println(tool_tip.getText());
}
}