Python Webdriver无法使用Xpath找到正确的按钮

时间:2015-07-01 11:06:47

标签: python selenium xpath selenium-webdriver

我在查找按钮的正确Xpath语法时遇到了一些麻烦。 页面上有2个添加按钮。报告下方有一个“添加”按钮。 在Projects下面有一个Add按钮。 我想在Projects下面找到一个,但我找到的是在Reports下面的那个。

我尝试了以下X路径,它们找到了span类报告下面的添加按钮:

Node::~Node() {
    for(int i=0; i<MAXCHILD; i++) {
        delete child[i];
        child[i] = nullptr;
    }
}

我想在span类Projects下面找到Add ...按钮。 我可以使用以下Xpath找到Projects span类。我不知道如何继续Xpath并找到Add ...按钮。

//button[div[. = 'Add...']]
//div[@class="gwt-HTML" and contains(text(), "Add...")]
e.g. driver.find_element_by_xpath(//button[div[. = 'Add...']])

HTML代码段如下:

//span[@class="gwt-InlineLabel" and contains(text(), 'Projects')]

我可以使用什么Xpath来定位Add ...哪个位于span类的项目下面? 感谢。

3 个答案:

答案 0 :(得分:0)

driver.find_element_by_xpath(.//span[text()='Projects' and @class='gwt-InlineLabel]/button[text()='Add...'])

答案 1 :(得分:0)

只需在Chrome中打开网站,右键单击按钮,然后inspect element。在窗口的下半部分,您现在应该看到页面的来源。验证是否突出显示了所需的行并右键单击它,然后选择&#34;复制xpath&#34;。然后将其粘贴到driver.find_element_by_xpath("xpath_string_from_chrome")

答案 2 :(得分:0)

我与开发人员交谈,她说按钮是项目范围类的兄弟。我应该使用follow-sibling来到按钮。我已经设法让它现在工作。 这是我的XPATH:

driver.find_element_by_xpath(//span[@class="gwt-InlineLabel" and contains(text(), 'Projects')]/following-sibling::*/div[@class="gwt-HTML" and contains(text(), 'Add...')]