[英]python selenium xpath/css selector
我试图使用xpath或css选择器选择特定信息。 但我继续收到错误消息。 有人可以帮忙看看这里有什么问题吗?
这是我的代码的一部分
output = driver.find_element_by_xpath("//td[@class_= 'sku']")
print(output)
使用下面的修改,我收到此错误消息:
Traceback (most recent call last):
File "sa.py", line 25, in <module>
output = driver.find_element_by_xpath("//td[@cl
File "C:\Python27\lib\site-packages\selenium\webd
return self.find_element(by=By.XPATH, value=xpa
File "C:\Python27\lib\site-packages\selenium\webd
{'using': by, 'value': value})['value']
File "C:\Python27\lib\site-packages\selenium\webd
self.error_handler.check_response(response)
File "C:\Python27\lib\site-packages\selenium\webd
raise exception_class(message, screen, stacktra
selenium.common.exceptions.NoSuchElementException:
td[@class=\'sku\']/p"}' ; Stacktrace:
at FirefoxDriver.prototype.findElementInternal_
ver@googlecode.com/components/driver_component.js:9
at FirefoxDriver.prototype.findElement (file://
ecode.com/components/driver_component.js:9479)
at DelayedCommand.prototype.executeInternal_/h
er@googlecode.com/components/command_processor.js:1
at DelayedCommand.prototype.executeInternal_ (f
@googlecode.com/components/command_processor.js:114
at DelayedCommand.prototype.execute/< (file:///
code.com/components/command_processor.js:11402)
这是我写的代码:
from selenium import webdriver
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
url = "http://www.sigmaaldrich.com/united-states.html"
#cas = "1300746-79-5"
cas = "100-44-7"
driver = webdriver.Firefox()
driver.get(url)
inputElement = driver.find_element_by_name("Query")
inputElement.send_keys(cas)
inputElement.submit()
pricing_link = driver.find_element_by_css_selector("li.priceValue a")
pricing_link.click()
output = driver.find_element_by_xpath("//td[@class='sku']/p")
print(output)
driver.quit()
在与OP和alecxe讨论之后,这是一个计时问题,您需要使用WebDriverWait等待表加载。
# XPath to select <p> inside <td> with class name 'sku'
outputs_by_xpath = WebDriverWait(driver, 10).until(
lambda driver : driver.find_elements_by_xpath(".//td[@class='sku']/p")
)
# or CSS selector
outputs_by_css = WebDriverWait(driver, 10).until(
lambda driver : driver.find_elements_by_css_selector("td.sku > p")
)
for output in outputs_by_xpath:
print(output.text)
print("\n")
for output in outputs_by_css:
print(output.text)
输出:
185558-50G
185558-250G
185558-1KG
185558-2KG
185558-50G
185558-250G
185558-1KG
185558-2KG
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.