为什么我在Selenium相对xpath中遇到语法错误?

时间:2019-05-27 17:56:52

标签: selenium

我是编程和尝试使用Selenium和Python从Webtool定位元素的绝对初学者。由于绝对路径DIV值不断变化,因此我不得不寻找相对路径。使用ChroPath,我找到了相对路径。

绝对路径为: / html / body / div [4] / div / div / div / div / div [5] / div / div [31] / div / table / tbody / tr [2] / td [2] / div / div /表/ tbody / tr / td / div

此处位于div [31]的元素有时会变为div [30]或div [32]。我在网上搜索后发现,我需要查找相对路径而不是绝对路径。

所以我尝试了相对路径方法。

HTML行:

// div class =“ vp-btnc-text” xpath =“ 1”> CS-CORE容量规划

Chropath提供的相对路径: // div [contains(text(),'CS-CORE Capacity Planning')]

我正在尝试的代码行是: driver.find_element_by_xpath('// div [contains(text(),'CS-CORE Capacity Planning')]')。click()

我得到的错误是: driver.find_element_by_xpath('// div [包含(text(),'CS-CORE容量规划')]')                                                           ^ SyntaxError:语法无效

需要帮助来解决此问题。

2 个答案:

答案 0 :(得分:0)

也许添加显式等待时间或隐式等待 示例:

WebElement messageElement = wait.until( ExpectedConditions.presenceOfElementLocated(By.id("AnotherElementBeforeThisElementIsLoaded")) );

或隐式等待:

driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

也是

driver.findElement(by.xpath(//divclass='vp-btnc-text' xpath='1'>CS-CORE Capacity Planning));

有时候,您需要将xpath的双引号更改为单引号。

答案 1 :(得分:0)

将xpath粘贴在双引号内,如下所示。

driver.find_element_by_xpath("//div[contains(text(),'CS-CORE Capacity Planning')]").click()