Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 将Xpath直接复制到Selenium不起作用_Python 3.x_Selenium_Xpath_Selenium Chromedriver - Fatal编程技术网

Python 3.x 将Xpath直接复制到Selenium不起作用

Python 3.x 将Xpath直接复制到Selenium不起作用,python-3.x,selenium,xpath,selenium-chromedriver,Python 3.x,Selenium,Xpath,Selenium Chromedriver,我一直在尝试右键单击并直接从网站复制粘贴Xpath,我从中得到了这个结果 //*[@id="WishList"]/div[4]/div/p[1] 然后,我尝试执行以下操作: a = driver.find_element_by_xpath(By.XPATH('//* [@id="WishList"]/div[4]/div/p[1]')) 但是,我得到的错误是“str”对象不可调用。不能直接复制粘贴XPath吗 您的代码行在语法上不正确 请尝试以下方法之一: a = driver.find_e

我一直在尝试右键单击并直接从网站复制粘贴Xpath,我从中得到了这个结果

//*[@id="WishList"]/div[4]/div/p[1]
然后,我尝试执行以下操作:

a = driver.find_element_by_xpath(By.XPATH('//* [@id="WishList"]/div[4]/div/p[1]'))

但是,我得到的错误是“str”对象不可调用。不能直接复制粘贴XPath吗

您的代码行在语法上不正确

请尝试以下方法之一:

a = driver.find_element_by_xpath('//* [@id="WishList"]/div[4]/div/p[1]')
a = driver.find_element(By.XPATH, '//* [@id="WishList"]/div[4]/div/p[1]')
a = driver.find_element('xpath', '//* [@id="WishList"]/div[4]/div/p[1]')
请注意,在Python中,
By.XPATH
不是一个方法(如在Java中),而是一个简单的字符串:
By.XPATH=='XPATH'

如果要定位动态元素,请尝试

from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait as wait
from selenium.webdriver.common.by import By

a = wait(driver, 10).until(EC.presence_of_element_located((By.XPATH, '//* [@id="WishList"]/div[4]/div/p[1]')))

您的代码行在语法上不正确

请尝试以下方法之一:

a = driver.find_element_by_xpath('//* [@id="WishList"]/div[4]/div/p[1]')
a = driver.find_element(By.XPATH, '//* [@id="WishList"]/div[4]/div/p[1]')
a = driver.find_element('xpath', '//* [@id="WishList"]/div[4]/div/p[1]')
请注意,在Python中,
By.XPATH
不是一个方法(如在Java中),而是一个简单的字符串:
By.XPATH=='XPATH'

如果要定位动态元素,请尝试

from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait as wait
from selenium.webdriver.common.by import By

a = wait(driver, 10).until(EC.presence_of_element_located((By.XPATH, '//* [@id="WishList"]/div[4]/div/p[1]')))

它们都不起作用,只是简单地说“找不到元素”,但它是一个直接的复制粘贴,来自chrome的检查工具:(您已经从已经呈现的页面复制了(JavaScript已执行),但您的脚本正在尝试在执行JavaScript之前查找元素。另一个可能的问题-元素可能位于
iframe
中。哦,那么我该如何查找真正的xpath呢?我已经在此处将html复制粘贴到一个pastebin文件中:。我想获得所有的内容,只需尝试
//p[@class=“head”]
遗憾的是,我已经尝试过了,它会提示完全相同的错误:selenium.common.exceptions.NoSuchElementException:Message:没有这样的元素:无法定位元素:{“method”:“xpath”,“selector”:”//p[@class=“head”]“}它们都不起作用,只是说“无法定位元素”,但它是一个使用检查工具直接从chrome复制的复制粘贴:(您已经从已经呈现的页面(JavaScript已执行)复制),但您的脚本正在尝试在执行JavaScript之前查找元素。另一个可能的问题-元素可能位于
iframe
中。哦,那么我该如何查找真正的xpath呢?我已经在此处将html复制粘贴到一个pastebin文件中:。我想获得所有的内容,只需尝试
//p[@class=“head”]
遗憾的是,我已经尝试过了,它会提示完全相同的错误:selenium.common.exceptions.NoSuchElementException:Message:没有这样的元素:无法找到元素:{“method”:“xpath”,“selector”:”//p[@class=“head”]“}