我是编程和尝试使用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:语法无效
需要帮助来解决此问题。
答案 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()