gpt4 book ai didi

python - 与不可见元素交互并访问第二个匹配元素

转载 作者:行者123 更新时间:2023-12-01 05:02:46 25 4
gpt4 key购买 nike

我想从下拉选项中选择一个值。 html如下:(网址为http://www.flightstats.com/go/FlightStatus/flightStatusByAirport.do)

<select id="airportQueryTime" name="airportQueryTime" onchange="selectTime(this); return true;" value="6">
<option onchange="selectTime(this); return true;" selected="selected" value="6">
6:00AM - 7:00AM
</option>
<option onchange="selectTime(this); return true;" value="7">
7:00AM - 8:00AM
</option>
<option onchange="selectTime(this); return true;" value="8">
8:00AM - 9:00AM
</option>
<option onchange="selectTime(this); return true;" value="9">
</select>



from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time

url = 'http://www.flightstats.com/go/FlightStatus/flightStatusByAirport.do;jsessionid=7B477D6D5CFB639F96C5D855CEB941D0.web4:8009?airport=LAX&airportQueryDate=2014-09-06&airportQueryTime=-1&airlineToFilter=&airportQueryType=0&x=0&y=0'
driver = webdriver.Firefox()
driver.get(url)
time.sleep(6)
element = driver.find_element_by_xpath("//select[@id='airportQueryTime']/option[@value='0']")
element.click()

我的问题是:

  1. 因为如果我通过 ID = 'airportQueryTime' 查找元素,则有三个标签,而我需要的元素是第二个。如何访问第二个匹配元素?

  2. 我尝试使用以下代码选择选项 value = 0,但 selenium 引发错误。

    selenium.common.exceptions.ElementNotVisibleException:消息:u'Element 当前不可见,因此可能无法与之交互'

最佳答案

selenium有一个特殊的 Select select 交互的类和option标签:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.select import Select


url = 'http://www.flightstats.com/go/FlightStatus/flightStatusByAirport.do;jsessionid=7B477D6D5CFB639F96C5D855CEB941D0.web4:8009?airport=LAX&airportQueryDate=2014-09-06&airportQueryTime=-1&airlineToFilter=&airportQueryType=0&x=0&y=0'
driver = webdriver.Firefox()
driver.get(url)

select = Select(driver.find_element_by_xpath("//div[@class='uiComponent674']//select[@id='airportQueryTime']"))

# print all the options
print [element.text for element in select.options]

# select option by text
select.select_by_visible_text('6:00AM - 7:00AM')

请注意,由于 airportQueryTime 有多个元素页面上的id,我们要在div范围内进行搜索与 uiComponent674类(用于选择时间间隔的 block )。

关于python - 与不可见元素交互并访问第二个匹配元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25706799/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com